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

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: 7005
Registrován: prosinec 10
Pohlaví: Muž

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.
"Dokud nebyly počítače, programování nebylo problémem.
Jestliže bylo několik slabých počítačů, bylo programování malým problémem.
Když však programátoři získali počítače na svou dobu ohromné síly, stalo se také programování ohromným problémem."

E. W. Dijkstra, 1972


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Kamerové záznamy
    od Riviera kid » 25 led 2020 11:12 » v Sítě - hardware
    6
    1129
    od Riviera kid
    05 úno 2020 06:50
  • Databáze klientů se záznamy ze schůzek
    od troymclure » 18 čer 2020 07:49 » v Vše ostatní (sw)
    6
    305
    od troymclure
    18 čer 2020 12:42
  • Rozpoznanie typu konektora
    od 28_nitro_28 » 17 úno 2020 11:08 » v Sítě - hardware
    3
    587
    od ITCrowd
    17 úno 2020 11:55

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

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 2 hosti