Mon programme (Eclipse Neon) se bloque pendant l'exécution de mon programme. J'ai trouvé la ligne avec le problème, mais je ne sais pas comment le résoudre.Erreur lors de la mise d'un élément dans mon tableau. C
Tout d'abord je fais un tableau dynamique:
int nLeden = 0;
AtletiekLid *ledenArray = (AtletiekLid *)calloc(nLeden, sizeof(AtletiekLid));
avec cette structure:
typedef struct {
char naam[30];
unsigned leeftijd;
} AtletiekLid;
Après que je fais ceci:
AtletiekLid lid;
strcpy(&lid.naam, "Test");
strcpy(&lid.leeftijd, "18");
addLid(ledenArray, lid, nLeden); //Program stopped working (windows error) on this line.
la fonction addLid
:
void addLid(AtletiekLid **ledenArray, AtletiekLid lid, int *nLeden) {
*ledenArray = (AtletiekLid *)realloc(*ledenArray, (*nLeden + 1) * sizeof(AtletiekLid));
(*ledenArray)[*nLeden] = lid;
(*nLeden)++;
}
Dans le addLid
(où mon programme est écrasé), il est écrasé sur cette ligne:
*ledenArray = (AtletiekLid *)realloc...
quelqu'un peut me aider, je ne sais pas ce que je fais mal.
'strcpy (& lid.leeftijd," 18 ");' -> 'lid.leeftijd = 18'. N'ignorez pas les avertissements du compilateur. –
n'utilisez jamais la même variable de pointeur que l'affectation côté gauche à un appel 'realloc'. – t0mm13b
@MichaelWalz cela ne résout pas le problème. –