Bonjour à tous,
Je suis actuellement en train de recompiler sous Linux (Red Hat5) des programmes compilés initialement sous Unix True64.
Pour l'un d'entre eux j'ai le message suivant à l'exécution alors que la compilation se passe bien :
*** glibc detected *** free(): invalid pointer: 0x00007fffbc5aad90 ***
Il s'avère dans le programme que j'exécute un free sur une structure, voici mon code :
Définition de la structure :
typedef struct
{
char cod_uc[5];
char * adr_list_sites;
int nbr_sites;
} list_uc_sites;
/*****************************/
Dans le programme :
list_uc_sites pUC;
char * ptemp;
int indUC;
int lgOCC_UC=0;
/* INITIALISATION DE LA STRUCTURE */
strcpy(pUC.cod_uc,"" );
pUC.adr_list_sites=NULL;
pUC.nbr_sites=0;*
memmove(ptemp+indUC*lgOCC_UC,&pUC, (size_t) lgOCC_UC);
/*Je ne mets pas ici l'implementation du pointeur ptemp ni de l'int indUC
free(&pUC);
Voilà partout où je fais appel à cette structure qui est exécuté par le free
Quelqu'un voit-il un problème quelque part sachant que le programme tourne très bien sous true64
Message édité par sal1 le 19-08-2011 à 11:35:19