私のクラスLinkedListのデフォルトコンストラクタを呼び出すと、他の操作が発生する前にリンクリストのヘッドノードに値を割り当てようとします。私はデバッグを介して、デフォルトのコンストラクタの命令にエラーを分離しています。すぐにC++ Linked List Struct Crashingへのポインタ
head -> next = NULL;
head -> RUID = 0;
head -> studentName = "No Student in Head";
と呼ばれるプログラムがクラッシュします。これは、mainのデフォルトのコンストラクタを呼び出すときに発生します。私はこの問題に関連するコードのこのすべてを信じる
struct Node
{
string studentName;
int RUID;
Node* next;
};
class LinkedList
{
private:
// Initialize length of list
int listLength;
public:
// Head of the list, which points to no data yet
Node *head;
LinkedList();
bool insertNode(Node* newNode, int position);
int generateRUID();
};
LinkedList::LinkedList()
{
head -> next = NULL;
head -> RUID = 0;
head -> studentName = "No Student in Head";
listLength = 0;
}
: はここに私のクラス宣言とデフォルトコンストラクタと一緒に私の構造体宣言です。誰かがこれに光を当てることができれば、それは非常に高く評価されるだろう。
'head'が他のすべての前に初期化する必要があります。これは 'LinkedList :: LinkedList'の始めに空の参照です。 –