====== 3. přednáška ====== =====Realokace paměti v C pomocí příkazu realloc===== Pokud potřebujeme zvětšit alokované pole, můžeme si pomoci funkcemi ''malloc'' (nebo ''calloc'') a ''free'' (nebo ''cfree''). Tato možnost je v programu zakomentována. Můžeme však též vyuižít funkci ''realloc'', která má dva parametry - pole, zněhož má nakopírovat hodnoty (je typu pointer na void) a novou velikost. Vrací pointer začátek nově přiděleného pole. #include int main(void) { int *pole, i, *p2; pole = (int*) malloc(sizeof(int)*10); for(i=0; i<10; i++) *(pole+i) = i; for(i=9; i>=0; i--) printf("%d, ", *(pole+i)); printf("\n\n"); /* p2 = (int *) malloc(20*sizeof(int)); for(i=0; i<10; i++) *(p2+i) = *(pole+i); free ((void*) pole); pole=p2; p2=NULL;*/ pole = (int *) realloc(pole, 20*sizeof(int)); for(i=10; i<20; i++) *(pole+i)=2*i; for(i=19; i>=0; i--) printf("%d, ", *(pole+i)); printf("\n"); free ((void*) pole); pole=NULL; return 0; } [[start|Zpět]]