j'ai un struct comme siTableau de pointeurs sur struct
typedef struct person {
int id;
char name[20];
} Person;
Puis, en dehors de la fonction, j'ai un tableau de pointeurs de pointeurs vers ces struct, comme si
Person **people;
Puis, en la fonction que je suis ajout de personnes à l'ensemble comme si (dans une boucle)
Person person;
for (i = 0; i < 50; i++)
{
person.id = i;
person.name = nameArray[i];
people[i] = &person;
}
person
est ajouté au people
tableau mais quand (dans VS2010) je vais à l'écran de surveillance et tapez people, 50
Je vois juste le même person
dans chaque emplacement comme si lors de l'ajout de la personne suivante, il change tous les précédents. Qu'est-ce que je fais mal ici?
De même, pour récupérer le nom d'une certaine personne, est-ce la bonne syntaxe?
people[0] -> name;
Ou est-ce people[0][0].name
?
Merci!
Sidenote sur une question supprimée: J'écrivais juste une réponse à votre question http://stackoverflow.com/questions/9485491/read-string-from-stdin-maintain-string-length lorsque vous l'avez supprimée. –
Désolé pour ça. Il se peut que cela n'ait pas été une question très productive pour le site. –
Nevermind. L'idée était: Mettre tout le 'char [20]' sur tout ''\ 0' 'avant d'appeler' fscanf'. Après le retour de 'fscanf', faites' for (int i = 19; i> = 0; i--) {if (s [i] == '\ 0') s [i] = ''; autre casse;} '. –