-1
はい、100個の質問のように重複していることはわかっていますが、これを何時間も働いていて何も動作していません。クラス内の構造体変数メンバを初期化するとセグメント化エラーが発生します
私がやりたいことは、クラス定義内のいくつかのプライベート変数を初期化することです。
構造は次のようになります。
#include <string>
using namespace std;
typedef string DataType;
class Slist {
public:
private:
// private data type: Node
struct Node {
DataType data;
Node *next;
};
// state variables:
Node *head, *tail, *cursor;
};
私はそうのようにそれらを初期化しています:
Slist::Slist (void) {
cursor -> data = 'n';
cursor -> next = new Node;
そして、これは私のセグメンテーションフォールトを与えています。私はこれが存在しないメモリにアクセスしようとしていることを知っていますが、これらのプライベート変数にもかかわらず、スライスコンストラクタでそれらにアクセスしようとしています。誰かが私に何が起きているか教えてくれたら、私は非常に感謝しています。
'cursor'はポインタであり、私はそれを格納するコードを見ません。 – user4581301
まず、使用する前に 'cursor = new Node;'と書いてください。 – songyuanyao
ありがとう!私は最初にそれをしなかったとは信じられません。そんなに真剣にありがとう。 – Nienaber