Tak tady máš pár příkladů: https://pastebin.com/aYpQYH6PNaprosto zjevný memory leak: nikde neuvolňuješ heapArray. Použij raději C++ a (a) alokaci na zásobníku pro malá pole nebo (b) std::unique_ptr, abys na dealokaci nemusel explicitně dbát.Zkoušel jsi to spustit s valgrindem? Zjevně ne, protože jinak by bylo jasné, že když si naalokuješ "pole" o velikosti jednoho intu (4 byty), tak potom zápis do položky 0 sice dává smysl, ale zápisy do položek 1 a 2 dělají něco nedefinovaného. Tedy zapisují náhodně do paměti, někam kdovíkam, za konec toho 4-bytového (1-intového) pole. Tam může být cokoliv. Třeba struktury alokátoru paměti. Který pak při dalším pokusu o alokaci / dealokaci odletí. Doporučuji víc než vřele valgrind.Komentář "v pořádku" je fakt vtipný. Ne, zapsat něco náhodně někam do paměti, která není řádně alokovaná, opravdu ale opravdu není v pořádku.> jakou hodnotu má dalších 7 políček a existují vůbec?Nikde neexistují žádná políčka. Existují jenom pointery a adresy ve virtuální paměti. Můžeš se pokusit zapsat kamkoliv nebo přečíst cokoliv. Když bude mít proces zrovna náhodou příslušnou stránku namapovanou (mmap binárek a knihoven, předalokovaná halda, rezerva pro zásobník, kdesicosi), bude to zdánlivě fungovat a něco jakože dělat. Pokud ovšem ta pamět (příslušná stránka) nebude namapovaná, celý proces samozřejmě (po zásluze!) odletí. (Pokud tedy nemaskuje SIGSEGV a nechce takový stav nějak sám ošetřit. To nikdo kromě debuggeru nebo JVM asi nechce.) Pokud paměť (příslušná stránka) bude namapovaná, hodnota záleží na tom, co ji zrovna používá. Pokud nic, budou tam prostě náhodná data, která tam jen tak zbyla po předchozím použití. Dost často to můžou být samé nuly, jindy zase něco jiného. Náhoda.Datové struktury jsou abstrakce nad lineárně adresovanou pamětí. Samy od sebe neexistují. Existují jen v představách programátora a… v programovacím jazyce.> pointerová aritmetika fungujeAno, ale bylo by lepší ji provádět na řádně alokované paměti, nikoliv sahat 36 bytů za konec alokované oblasti. To je asi jako sahat školačce na malé neposedné kozičky. Může to fungovat a projít. Může přijít rána pěstí od fotra školačky. Může přijít film V síti a poté policie.> pokud funguje kód výše proč bych vůbec při alokaci pole měl udávat počet políček?Protože kód výše n.e.f.u.n.g.u.j.e, což bys zjistil, kdybys to spustil přes valgrind. Žádný počet políček se nikde neudává; udává se počet bytů. Pokud chceš alokaci, která je trochu bližší "počtu políček", doporučuji nelpět až tolik na C a použít C++ a new.> přímo zabudovaným vectoremNesmysl. Žádný zabudovaný vector neexistuje. std::vector je knihovna jako každá jiná, implementovaná nad poli, new[] a delete[].Inu, doporučuji podívat se na https://pastebin.com/aYpQYH6P a pokusit se pochopit jednotlivé příklady. Druhý krok by mohl být vyzkoušet, co z toho bude fungovat v C a co je specifické pro C++. Každý krok by ovšem měl zahrnovat valgrind; ten je naprosto nezbytný. Ukázat celý příspěvek