程序编译和运行,但一段时间后,它停止使用Typedef关键字在CPP上工作

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

本文关键字:Typedef 关键字 CPP 工作 运行 编译 一段时间 程序      更新时间:2023-10-16

我正在使用此代码,但它没有运行。它没有在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只是一个指针,因此您需要将其指向的某个地址分配给。