Záznamy typu proměnných

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

mushkan
nováček
Příspěvky: 3
Registrován: leden 19
Pohlaví: Nespecifikováno
Stav:
Offline

Záznamy typu proměnných

Příspěvekod mushkan » 29 led 2019 17:56

Snažím se převést záznamy o pevné délce různých datových typů a velikostí do jedné datové struktury v jazyce C. Přemýšlel jsem o použití struktur svazků, ale některé pole mohou mít délku až 50 znaků, takže spousta paměti by bylo zbytečné. Existuje lepší způsob ukládání těchto údajů?

Jako příklad:

20190128značka 24color 9 (int, 6 char, int, 6 char, int)

verylongname4520190128 (12 znaků, int, int)

jsou dva možné nahrávací formáty. Kdybych měl ukládat oba záznamy pomocí stejné struktury, jediná věc, na kterou momentálně můžu uvažovat, je použít spojení s char pole délky 13 a int pro všechny prvky tak, aby největší část dat lze uložit. To by vyhovovalo jakémukoli jinému záznamu za předpokladu, že řetězec s 12 znaky je největší proměnnou. Pro tento příklad by tato struktura měla být 5 z těchto svazků, takže mohl být uložen první záznam. To hodně odpadá, když ukládáte některý z rekordních formátů, takže to není tak skvělé řešení (imo).

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Záznamy typu proměnných

Příspěvekod faraon » 29 led 2019 19:53

Co dát do té struktury ukazatel na pole znaků? Pak pro každý ten string alokuješ pouze potřebný počet bytů.
Nebo si alokovat velký blok paměti a do něj je ukládat stejným způsobem, tam bys teda musel provádět vlastní "správu paměti". Bylo by to sice pracnější, ale poběží to rychleji.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů