Bonsoir tout le monde,
J'étais entrain de m'exercer sur les allocations dynamiques lorsque j'ai fais face à ce problème:
-> Pour le code ci-dessous, les valeurs renvoyées lors de l’exécution (que je constate via les printf) sont différentes que celles obtenues lors du mode debug. J'obtiens les valeurs suivantes lorsque je suis en exécution:
variable[0] = 11
variable[1] = 22
variable[2] = 33
variable[3] = 44
variable[4] = 55
Les valeurs suivantes lorsque je suis en mode debug (je place le breakpoint sur return):
variable[0] = 11
variable[1] = -1414812906
variable[2] = -1414812757
variable[3] = 44
variable[4] = 55
J'avais également regardé directement les valeurs à l'aide de l'option "watches", elles étaient identiques à celles renvoyées. Quelqu'un pour m'éclairer ? Merci d'avance.
Voici le code:
Code:int n = 3; int* variable = malloc(sizeof(int)*n); variable[0] = 11; variable[1] = 22; variable[2] = 33; printf("Adresse variable = %p\n", (void*)variable); for(i=0; i<3; i++) { printf("variable[%d] = %d\n",i,variable[i]); } n = 5; variable = realloc(variable,n); variable[3] = 44; variable[4] = 55; printf("Adresse variable = %p\n", (void*)variable); for(i=0; i<5; i++) { printf("variable[%d] = %d\n",i,variable[i]); }
-----