【发布时间】:2019-04-22 17:46:23
【问题描述】:
结构指针返回结构成员的起始字节 .我想知道它是如何工作的。请有人帮助我了解这一点。
#include <stdio.h>
typedef struct node {
char mem;
double mem2;
char mem3;
int mem4;
char mem5;
char mem6;
}NODE;
int main()
{
NODE * m;
printf("%u",&m->mem3);
return 0;
}
输出为 16
【问题讨论】:
-
您没有为
NODE *m分配内存。您正在调用未定义的行为。 -
你能详细说明你的问题吗?
-
或多或少确切相同的问题as this one。请告诉班上的其他人不要发布重复内容。
-
另外,将打印更改为
printf("%c", m->mem3);。请注意您不需要&,您已经使用->运算符取消引用。 -
它在这里返回结构成员的起始字节。(即)mem-0,mem2-8,mem3 -16,mem4 -20,mem5-24,mem6 - 25。它如何返回起始字节数。 @Micha Wiedenmann @Sourav Ghosh @Blaze
标签: c memory struct segmentation-fault