fal*_*aff 0 c pointers nullpointerexception
众所周知,默认情况下,堆栈上的内容不会被初始化.我试图用堆栈上的结构来证明,但是我的指针初始化为null,但为什么呢?什么是初始化这个指针?
#include <stdio.h>
#include <string.h>
struct strustri {
int var1;
char *var2;
};
int main()
{
struct strustri test1 = {
.var1 = 12,
.var2 = "Teststring",
};
struct strustri test2;
printf("test1.var1 is %d\n", test1.var1);
printf("test2.var1 is %d\n", test2.var1);
printf("test1.var2 points to %p\n", test1.var2);
printf("test2.var2 points to %p\n", test2.var2);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
这是我的机器上的输出(Ubuntu 12.10):
test1.var1 is 12
test2.var1 is -1271814320
test1.var2 points to 0x400634
test2.var2 points to (nil)
Run Code Online (Sandbox Code Playgroud)
我多次运行我的例子.我每次都得到var1的另一个值,但var2总是指向零(空指针)......