Dobrý den. Myslím, že není třeba abych můj problém komentoval, tak vložím pouze kód:
int *p = (int*) malloc(4 * sizeof(int));
p[0] = 5;
p[1] = 12;
p[2] = 18;
p[3] = 20;
free((void*) p);
printf("%d, %d, %d, %d", p[0], p[1], p[2], p[3]);
A zeptám se: Proč mi program vypíše 0,12,18,20 když jsem odebral programu tuto paměť? Mám to chápat tak, že sice programu odeberu paměť, ale hodnoty stále v paměti jsou? Proč se tedy smaže 5? Nebo pouze dělám něco špatně?
Předem děkuju za odpovědi.