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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
struct sfloat
{
   float *myfloat;
}
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
 
void addmylist(struct sfloat mystruct)
{
   list->push_back(& mystruct.myfloat);
}
On devait choisir une ou plusieurs réponses parmi les suivantes :
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.