<分区>
这段代码中的错误,定义了一个空指针并通过解引用获取空指针变量的地址来初始化它,导致返回错误的值,但它编译和运行没有任何错误。 bbb
和 aaa
没有事先声明。是否有类似可以暴露此类型错误的开关?
#include <stdio.h>
void *bbb = &bbb;
void func(void) {
void *aaa = &aaa;
printf("Test aaa %p\n", aaa);
printf("Test bbb %p\n", bbb);
}
int main()
{
func();
return 0;
}
/* Commands used to compile
clang void_pointer1.c -Wall -o void_pointer1
-or-
gcc void_pointer1.c -Wall -o void_pointer1
./void_pointer1
*/