Supposons que j'ai le code suivant:Est-ce que pthread_detach va gérer ma mémoire pour moi?
while(TRUE) {
pthread_t *thread = (pthread_t *) malloc(sizeof(pthread_t));
pthread_create(thread, NULL, someFunction, someArgument);
pthread_detach(*thread);
sleep(10);
}
Est-ce que le fil détaché libérer la mémoire allouée par malloc, ou est-ce quelque chose que je dois maintenant faire?
Le problème d'OP est de penser que parce que 'pthread_create' prend un argument' pthread_t', vous avez besoin d'une variable pointeur pour passer. C'est une erreur classique de commencer les programmeurs C - déclarant des variables de pointeur à utiliser comme arguments plutôt que de passer '& foo'. –