【发布时间】:2016-05-11 09:25:56
【问题描述】:
我一直在学习结构,我已经找到了指向结构的指针,我目前正在努力解决这个问题。
我有这段代码:
struct point {
int x;
int y;
} *ptr;
ptr->x = 8;
ptr->y = 8;
运行它会产生分段错误。我想要做的是将8的值分配给x / y,据我所知,ptr指向它。
【问题讨论】:
-
ptr指向哪里? (提示:缺少内存分配) -
@ForceBru
malloc(1)明显不对,应该是sizeof(struct point)。 -
@fluter 或者,就此而言,
ptr = malloc(sizeof*ptr); -
@SouravGhosh 是的,我也更喜欢
sizeof *ptr。 -
无需将OP与动态内存分配混淆。
struct point X; ptr = &X;就足够了。