pointeur null invalide dans xssortingng

Donc, j’ai presque fini cette mission, mais maintenant, j’ai de nouveau des difficultés. Lorsque j’essaie de dessiner du texte depuis une classe de questions, j’obtiens un pointeur null invalide de xssortingng. J’ai environ 2 heures, donc toute aide serait vraiment appréciée

Voici la classe de questions:

class Question { public: int col; int row; bool dailyDouble; char* question; char* answer; double value; Question(); Question(int, int, bool, char*, char*); bool checkAnswer(ssortingng); Question& operator=(const Question&); }; Question::Question() {} Question::Question(int c, int r, bool d, char* q, char* a) { col = c; row = r; dailyDouble = d; question = q, answer = a; if(d) value = r * 200 * 2; else value = r * 200; } bool Question::checkAnswer(ssortingng answer) { if(answer.find("What is") && answer.find(answer)) return true; return false; } Question& Question::operator=(const Question&) { return *this; } 

J’ai une méthode de texte dessiné (qui fonctionne) mais je manque de place, c’est donc la ligne qui cause l’erreur:

  drawText((WinWidth/2)-200,(WinHeight/2) - 100, curQuestion.question); 

Toute aide serait vraiment appréciée!

Votre opérateur = (const Question &) est faux, il ne fait que retourner l’object actuel. Si cet object a été créé avec le constructeur par défaut, “question” et “réponse” ne sont pas initialisés et votre programme peut se bloquer si cet opérateur est utilisé.

L’opérateur “=” est censé copier chaque champ. Pour les pointeurs de chaîne tels que “question” et “réponse”, vous devez allouer une nouvelle mémoire pour le contenu de la chaîne et copier les caractères des chaînes de l’object transmis en tant que paramètre. Mais vous devriez probablement vous débarrasser de l’opérateur = de toute façon et utiliser std :: ssortingng pour “question” et “répondre” au lieu de char * (voir ci-dessous).

Finalement,

 if(answer.find("What is") && answer.find(answer)) 

N’a pas de sens. Cela devrait probablement être quelque chose comme:

 bool Question::checkAnswer(ssortingng proposedAnswer) { if(question.find("What is") && answer.find(proposedAnswer)) return true; return false; } 

… en supposant que vous avez changé le type de question et de réponse de caractère * en chaîne:

 public: int col; int row; bool dailyDouble; ssortingng question; ssortingng answer; ...