2012-01-31 1 views
-1
a* b::find() const 
{ 
    a* pointr = head; 

    return pointr; 

} 

Ceci est mon code mais Visual Studio souligne pointr dans la ligne de retour pointeur? Qu'est ce qui ne va pas avec mon code?Fonction membre renvoyer une fonction

EDIT: DÉSOLÉ TYPO

+0

Expliquez ce que vous essayez de faire et montrez plus de code. Pour le moment, ce n'est pas clair. Si la réponse Als a résolu votre problème, acceptez sa réponse. – Begemoth

+0

Ce serait beaucoup plus facile si vous nous montriez le message d'erreur que VS vous donne. – Fiktik

+0

Y at-il un message d'avertissement réel de l'IDE? – araqnid

Répondre

3
a* pointer = head; 

return pointr; 

Vous n'avez pas d variable déclarée comme pointr dans le cadre de la fonction, Comment le compilateur savoir à moins que vous déclarez?

pointr et pointer ne sont pas les mêmes, il manque e.

En supposant qu'il s'agit d'une faute de frappe,
Votre fonction renvoie un pointeur, mais ce qu'il pointe est important dans ce cas. Si head est une variable locale ou un pointeur sans allocation de mémoire dynamique (pointant sur un objet local), votre pointeur pointer pointe vers un objet local qui sera détruit une fois que la fonction sera retournée et sera un pointeur qui pend. Rappelez-vous la règle:
Vous ne devez pas renvoyer de référence ou de pointeur vers une variable locale pour fonctionner.

+0

désolé j'ai eu une faute de frappe – user782311

1

Vous avez une mauvaise variable retourné

pointr de retour;

dans votre code. Ce n'est pas défini dans la portée.

Questions connexes