程序编译并运行但在一段时间后它停止使用typedef关键字在cpp中工作

时间:2017-10-03 14:25:28

标签: c++ struct typedef

我正在使用此代码但它没有运行。 它没有在Dev C ++中运行。 它运行然后爆炸。

#include <iostream>
using namespace std;
struct Node
{
    struct Node* left;
    int data;
    struct Node* right;
};
typedef struct Node *node;
int main()
{
    node n;
    n->data = 4;
    cout << n->data << endl;
    return 0;
}

2 个答案:

答案 0 :(得分:0)

在使用之前,您需要为n分配内存,例如:

node n = new Node;

答案 1 :(得分:0)

显然,n变量只是一个指向谁知道在哪里的指针。您需要为其分配一些内存地址,以便从中读取数据或写入数据 这应该可以解决问题:

node n = new Node;

typedef struct Node *node;对您来说可能有点混乱 你可以写:

Node* n = new Node;

摆脱typedef,更清楚的是n只是一个指针,因此你需要为它指定一个地址。