Salut a tous,
J'ai discuté avec quelqu'un à propos de ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!