AmisQuestion sur l'utilisation de l'implémentation de realloc dans le code C++
Dans notre C++, Iam utilise la méthode realloc pour redimensionner la mémoire allouée par malloc. utilisation realloc() se fait comme suit
my_Struct *strPtr =(my_struct*)malloc(sizeof(my_Struct));
/* an later */
strPtr = (my_struct*)realloc(strPtr,sizeof(my_Struct)*NBR);
maintenant wikipeadia (_http: //en.wikipedia.org/wiki/Malloc) dit que
Si la place on a fait
void *p = malloc(orig_size);
/* and later... */
p = realloc(p, big_size);
alors dans le cas où il n'est pas possible d'obtenir big_size octets de mémoire, p aura la valeur NULL et nous n'aurons plus de pointeur sur la mémoire précédemment allouée pour p, créant une fuite mémoire
Et il dit aussi que la bonne façon de corriger l'erreur ci-dessus est
void *p = malloc(orig_size);
/* and later... */
void *tmp = realloc(p, big_size);
if (tmp != NULL)
{
p = tmp; /* OK, assign new, larger storage to p */
}
else
{
/* handle the problem somehow */
}
Pouvez-vous me dire quelle est la meilleure façon d'utiliser realloc()
aussi une fois que j'ai pointeur sur un structure et puis en utilisant Realloc plus tard, puis-je utiliser un pointeur vers un vide ??
Merci beaucoup
En C++, le meilleur moyen est généralement de ne pas utiliser realloc. – jalf