glipper
Messages postés246Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention11 septembre 2016
-
17 mars 2008 à 23:30
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 2010
-
19 mars 2008 à 21:03
Bonjour,
j'ai crée une fonction comme ceci, qui mémorise les malloc effectués par un programme :
void* _malloc(size_t n, int line, char* file)
{
void* p = NULL;
p = (void*) malloc(n);
if (p)
NewAlloc(&pHeadMalloc, line, file, p, n);
return p;
} // end _malloc
Lors de la compilation, j'ai un WARNING qui me semble un peu inquiétant. Je n'ai rien trouvé sur google, donc je pose ma question ici car ça m'intrigue :
warning C4717: '_malloc' : récurrent sur tous les chemins d'accès de contrôle, la fonction entraînera un dépassement de capacité de la pile d'exécution
Comment dois-je interpreter ce message ? Est-ce que c'est grave ?
(dépassement de capacité, ça semble assez grave...)
glipper
Messages postés246Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention11 septembre 20161 18 mars 2008 à 23:01
Bonjour juju12
Je viens tout juste de trouver d'où venait l'erreur, par hasard.
En fait j'avais inclus par erreur un fichier header qui faisait un define comme ceci :
#define malloc(n) _malloc(n, __LINE__, __FILE__)
Du coup, la fonction _malloc etait récursive à l'infinie. Comme elle n'etait pas appelé durant mon programme, il n'y avait pas de bug, juste ce WARNING de Visual studio pour m'avertir du problème.
Maintenant c'est bon, le WARNING a disparu :)
En fait après reflexion, le message de Visual était clair pour une fois ("récurrent")