|
|
|
|
Bonjour,
j'utilise la fonction free() de cette maniére dans mon programme :
int *p;
if(*p=NULL) {
free(p);
p=NULL;
}
et quand je compile, jai ce message d'erreur qui me géne :
attention : déclaration implicite de la fonction « «free» »
Je voudrais savoir pourquoi j'ai ce message !!
Merci d'avance !
Cdt
descoff
Configuration: Linux Firefox 3.0.3
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/malloc.3.html
|
Salut,
if(*p=NULL) {
Là tu es en train de mettre NULL dans *p et de tester si *p est différent de NULL. Enfin bref ça n'a pas de sens. Il ne faut pas appeller free si tu n'as pas appelé malloc avant (ou calloc/realloc). En gros:
#include <stdlib.h>
int main()
{
int *p;
p = (int *)malloc(sizeof(int) * 4);
*p = 1;
free(p);
p=NULL;
return 0;
}
Le gâteau est un mensonge! |
Répondre à descoff
|