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).
Záznamy typu proměnných
Re: Záznamy typu proměnných
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.
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)
(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ů