J'essaie d'exécuter un programme en utilisant un tableau que j'ai alloué manuellement avec malloc(). Je libre() ce tableau à la fin de mon programme, mais je continue à obtenir une erreur en disant *** glibc detected *** ./test: double free or corruption (!prev): 0x0000000002177010 ***
Erreur lors de l'exécution de free() indiquant "glibc détecté double free ou corruption"
Voici mes principales:
int main(int argc, char** argv)
{
pthread_t t1, t2, t3;
int i = 1;
int k = 0;
Client* clients;
clients = (Client*) malloc((nbClients+1)*sizeof(Client));
for (i = 1; i <= nbClients+1; i++)
{
printf("\n----TICKET%d----\n", i);
clients[i].panier = (int*) malloc(nbArticles*sizeof(int));
achats(clients[i].panier, &clients[i].ticket);
for (k = 0; k < nbArticles; k++)
{
printf("panier[%d] = %d\n", k, clients[i].panier[k]);
}
pthread_create(&t1, NULL, calcMACL, &clients[i]);
//calcMQUAD(clients[i].panier, &clients[i].ticket);
//calcMACL(clients[i].panier, &clients[i].ticket);
//calcMCUBE(clients[i].panier, &clients[i].ticket);
pthread_join(t1, NULL);
//free(clients[i].panier);
}
free (clients);
return 0;
}
Merci pour votre aide
lmaooo oui juste vu, SRY je suis, je pense vraiment fatigué merci, il travaille maintenant mais j'ai toujours les mêmes valeurs? est-ce normal ? (J'utilise une fonction int aléatoire, et c'est toujours exactement la même chose) –
Je ne vois aucune génération de nombres aléatoires. Vous pouvez avoir d'autres problèmes dans le code que vous n'avez pas publié. – usr
oui c'est okay je l'ai corrigé (je n'ai pas mis de graine), fanks –