Tableau de pointeurs de structures
Bonjour,
mon but est d'avoir un tableau à deux dimensions de structures.
donc usersasc[1][2] accède à la 2e structure de l'ascenseur 1.
J'ai iNbasc threads qui représentent chacun un ascenseur. Chaque thread accède à ce tableau (sans conflits rassurez-vous). Je réserve donc la mémoire comme ceci :
SUser** usersasc;
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| if((usersasc = (SUser**)malloc(iNbasc*sizeof(SUser*))) == NULL)
{
perror
("Erreur dans la fonction main : Erreur d'allocation memoire infoasc");
exit(EXIT_FAILURE);
}
for(i = 0; i<iCapacite; i++) {
if((usersasc[i] = (SUser*)malloc(iCapacite*sizeof(SUser))) == NULL)
{
perror
("Erreur ds la fonction main : allocation memoire usersasc");
exit(EXIT_FAILURE);
}
} |
Ce qui compile et fonctionne bien pour 1 seul ascenseur. Je peux accéder à usersasc[0][i < iCapacite] sans probleme.
Si je lance le programme pour + que 1 ascenseur avec capacite = 1 et si j'essaie d'accéder à usersasc[1][i < iCapacite](ce qui arrive souvent ds le prog), le programme se fige (même pas de seg fault).
Voyez-vous une erreur dans mon malloc ? La faute vient de là j'ai fini par la localiser mais je ne vois pas ce qui cloche.
Merci :(