Facebook RSS feed

5. díl - Dynamická pole (vektory) v jazyce C

Zpět do sekce Programování v jazyce C - Další konstrukce

Až doposud jsme byli za běhu aplikace omezeni pamětí, která nám byla přidělena. Ať jsme si paměť alokovali dynamicky za běhu aplikace nebo ji za nás jazyk C alokoval staticky, vždy jsme narazili na její limit. Museli jsme si tedy např. hlídat, aby počet uložených čísel nepřesáhl velikost pole. V následujících 2 dílech se konečně dozvíme jak ukládat neomezené množství prvků do paměti, čímž dovršíme své znalosti potřebné k tomu, abychom v Céčku vytvořili opravdu reálně použitelnou aplikaci.

Dynamické pole (Vektor)

Již víme, že prvky pole se v paměti nacházejí bezprostředně za sebou. Také víme, že velikost pole je omezena. Jakmile pole vytvoříme, musíme uvést jak velký prostor (jak velkou řádku jedniček a nul) pro něj má operační systém v paměti vyhradit. Budeme-li programovat např. telefonní seznam, dá se velmi špatně odhadnout kolik čísel v něm bude náš uživatel mít. Bude to 10 nebo 1000? Můžeme vytvořit pole čísel o velikosti 1000. Uživatel poté bude využívat jen jeho část a je to lepší řešení, než když velikost pole podceníme a uživateli aplikace sdělí, že nemá kam ukládat (v tom lepším případě) nebo paměť rovnou přeteče. Jak to ale udělat správně?


 

...konec náhledu článku...

Prémiový článek

Na ITNetwork.cz se nachází největší a nejucelenější česká databáze s výukovými články, jejímž cílem je umožnit kvalitní vzdělání v oblasti IT úplně každému. Měsíčně zobrazíme k milionu článků a sklidíme desítky děkovných emailů, kde nám sdělujete, že jsme vám pomohli k lepšímu zaměstnání nebo vzdělání.

Ačkoli se snažíme držet většinu obsahu úplně zadarmo, udržovat síť v provozu a aktuální stojí obrovské úsilí. Proto je nějaký obsah, jako cvičení nebo odbornější články, přístupný pouze za body. Nebojte, nestojí to skoro nic :)

Popis článku

Požadovaný článek má následující obsah:

V tutoriálu naprogramujeme datovou strukturu vektor, dynamické pole, jehož kapacita se při zaplnění zdvojnásobí. Zabírá rozumně místa a není nijak omezené.
Pro přístup k článku potřebuješ 10 bodů
Na svém účtu máš aktuálně 95 bodů
10 bodů získáš za přidání svého článku na síť nebo za 25,00 Kč

Koupí článku k němu získáš neomezený přístup a to napořád. Posuneš své znalosti zas kousek dopředu a zároveň nám pomůžeš udržovat celý projekt při životě a pomáhát vám tak k lepší budoucnosti.

Body získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.

Dobít body můžeš okamžitě např.:

Karta SMS Bankovní převod
Kartou SMS Převodem
Článek pro vás napsal David Čápka
Avatar
Autor je C# a PHP programátor, dále se věnuje webovým technologiím a redaktorské činnosti na ITnetwork. Rád své znalosti sdílí s komunitou a tak je rozšiřuje, věří, že smysl života je v poznání.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Předchozí článek
Dynamické textové řetězce a struktury v jazyce C
V tutoriálu se naučíme dynamicky alokovat textové řetězce přesně tak dlouhé, jak potřebujeme. Dále se zaměříme na referenční práci se strukturami.
Všechny články v sekci
Programování v jazyce C - Další konstrukce
Sekce obsahuje tutoriály pro programovací jazyk C (céčko), které navazují na první sekci a odhalují další konstrukce jako soubory nebo dynamickou paměť.
Další článek
Spojové seznamy v jazyce C
V tutoriálu naprogramujeme datovou strukturu spojový seznam, který je stejně jako vektor kapacitně neomezený, ale má jiné výhody a nevýhody.