A propos de réallocation mémoire
Salut a tous,
J'ai discuté avec quelqu'un à propos de ce code:
Code:
1 2 3 4 5 6 7 8 9
|
#include <stdio.h>
#include <stdlib.h>
void func(void* mem,int taille)
{
if ( (mem= (void*) realloc(mem,taille+10)) ==NULL)
{printf("Erreur de réallocation\n");}
} |
Il paraitrait que celui ci possède "une erreur de conception" à cet endroit
Code:
if ( (mem= (void*) realloc(mem,taille+10)) ==NULL)
car cela empecherait la fonction appelante de libérer la mémoire.
Le code appropriée me dit-on serait le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
#include <stdio.h>
#include <stdlib.h>
void func(void* mem,int taille)
{
void* temp;
if ( (temp= (void*) realloc(mem,taille+10)) ==NULL)
{printf("Erreur de réallocation\n");}
else
{mem=temp;}
} |
Alors quel est la vérité sur le sujet ?
Merci d'avance a ceux qui fourniront un avis!