我正在尝试从 struct
指针 pPoint
访问 int
。下面的代码可以编译,但是当程序在命令提示符下运行时,我的计算机说程序已停止工作。
#include <stdio.h>
typedef struct point *pPoint;
struct point {
int num;
pPoint pt2;
} pt1;
int main() {
pt1.num = 9;
pt1.pt2->num = 7;
printf("%d ", pt1.num);
printf("%d\n", pt1.pt2->num);
return 0;
}
错误在哪里,需要修改什么?
最佳答案
您尚未为 pt2
指针所指向的内容分配任何内存。因此,当您执行时
pt1.pt2->num = 7;
您正在向未初始化指针末尾的内容写入一个值。这是未定义的行为。在尝试为其中的变量赋值之前,您需要确保 pt2
指向有效的 point
结构,
关于c - 尝试从结构指针 : compiles but does not run 访问 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518219/