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

program compiles and runs but after sometime it stops working in cpp ,using typedef keyword

我正在使用此代码,但它不是 运行。 它不是 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;
}

使用前需要为n分配内存,如:

node n = new Node;

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

node n = new Node;

typedef struct Node *node; 可能会让您有些困惑。
你可以这样写:

Node* n = new Node;

并摆脱 typedef,它更清楚地表明 n 只是一个指针,因此您需要为它分配一些它指向的地址。