Bonjour.
Je sais que malloc est utilisé pour une 1° allocation mémoire et realloc pour modifier la taille initialement allouée mais je constate que je peux aussi utiliser realloc pour la 1° allocation mémoire :
je me trompe ? il ne faut pas le faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> #include <stdlib.h> int main() { int *ptr1 = (int*) malloc(sizeof(int)); int *ptr2 = NULL; ptr2 = (int*) realloc(ptr2, sizeof(int)); ptr1[0]=1; ptr2[0]=2; printf("%d %d\n",ptr1[0],ptr2[0]); return 0; }
Ça me semble pourtant bien pratique, par exemple pour éviter de devoir différencier le cas initial (malloc) des cas suivants (realloc)dans une allocation conditionnelle :
Merci d'avance pour vos lumières
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <stdio.h> #include <stdlib.h> int main() { int *ptr2 = NULL; int i = 0; while (i < 10) { // par exemple ptr2 = (int*) realloc(ptr2, (i+1) * sizeof(int)); ptr2[i] = i; // par exemple i+=1; } for (i = 0;i<10;i++){ printf("%d\n", ptr2[i]); } return 0; } }
Partager