Wednesday, 15 August 2012

c - What if the counter exceeds the memory allocated by malloc or calloc -



c - What if the counter exceeds the memory allocated by malloc or calloc -

i utilize next command in c allocates 80 bytes (in 64bit system) d.

double *d = calloc(10, sizeof(double));

and using next loop initialize d

for (k=0;k<11;k++){ d[k] = k; }

when run program, there no error. sense since upper limit on k 11, there should wrong d array of length 10. please allow me know why programme executed no error. in advance.

this undefined behavior. there might error, , might silently ignored os, when break rules - bets off.

what happens in code depends on os, compiler , architecture run on, might tolerant violation, crash or else, point - resulting behavior undefined.

c

No comments:

Post a Comment