以下からノードを作成しようとしています。「int データ」なしで試してみると、新しい構造体メンバーをインスタンス化できますが、別のメンバー変数「文字列名」を追加すると、何らかの理由でメモリ リークが発生します。
struct node
{
string name;
int data;
vector<node*> neighbors;
node(string name, int data, node* neighbor)
{
this->name = name;
this->data = data;
neighbors.push_back(neighbor);
}
explicit node()
: name(NULL), data(NULL), neighbors(NULL) {}
explicit node(string name)
: name(name), data(NULL), neighbors(NULL) {}
};
次の行は、エラー「EXC_BAD_ACCESS (code=1, address=0x0」) が表示される場所です。
int main() {
struct node* root = new node(NULL);
root->name = "root";
root->data = 10;
メンバー変数が 1 つしかないのにエラーが発生しないのに、メンバー変数がもう 1 つあるのはなぜですか? 何かを初期化するのに欠けていますか?上記のコンストラクターでやっていると思います。アドバイスをお願いします。
ありがとう、