例如,我有一个struct
struct s{
char c;
int x;
};
并且我使用calloc()
分配内存。
s *sp = (s*) calloc(1, sizeof(s));
Now,sp->c
和sp->x
的值是多少?
sp-> c和sp-> x的值是什么?
由于calloc()
将分配的内存的所有位都设置为0
,如果c
值的表示形式是x
的所有位,则0
和0
将具有0
的值(很常见)。
请注意,在使用指针的情况下,该指针可能不是符合标准的NULL
指针。
首先请确保以正确的方式声明该结构为了使s
已知,您必须将其添加到结构的末尾。如果您不想这样做,则每个声明都必须是struct s
struct s{
char c;
int x;
} s;
[s *sp = (s*) calloc(1, sizeof(s))
将在两个值中输入0。
还学习使用调试器,您可以在其中看到值
作为程序员调试器非常重要。