Bonjour,
J'ai passé un qcm C/C++ hier et l'une des questions était (de mémoire) à peur près comme ça :
On a la structure suivante :
et plus tard on a une méthode de classe qui a un attribut vector* appellé list :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct sfloat { float *myfloat; }
On devait choisir une ou plusieurs réponses parmi les suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void addmylist(struct sfloat mystruct) { list->push_back(& mystruct.myfloat); }
1. tout va bien, c'est la fete
2. ça va systématiquement péter quelque part apres le retour de cette fonction
3. ça va probablement péter quelque part apres le retour de cette fonction
4. ça va systématiquement péter quelque part pendant l'execution de cette fonction
5. ça va probablement péter quelque part pendant l'execution de cette fonction
J'ai indiqué 2 et 5 en me disant :
2 : mystruct est une copie, donc après le retour de la fonction, l'adresse donnée à list pointe sur le vide
5 : il se peut que myfloat soit null, donc l'ajout de l'élément pourrait peter
Mais j'ai un doute en fait, vu que le c et le c++ ça remonte un peu pour moi, je suis plus si sur d'assurer en gestion de la mémoire.
Merci de votre aide.
Partager