//-std=c99 -Wall -Wextra -Wpedantic -Wshadow #include #include #include #include typedef struct{ int *p1; size_t size; } TestStruct; TestStruct ts1; int main() { TestStruct ts2; printf("%s\n", ts1.p1 ? "NOT NULL" : "NULL"); printf("%p\n", (void*) ts1.p1); printf("%zu\n", ts1.size); printf("%s\n", ts2.p1 ? "NOT NULL" : "NULL"); printf("%p\n", (void*) ts2.p1); printf("%zu\n", ts2.size); ts2.p1 = NULL; ts2.size = 0; printf("%s\n", ts2.p1 ? "NOT NULL" : "NULL"); printf("%p\n", (void*) ts2.p1); printf("%zu\n", ts2.size); return 0; } /* main.c:23:23: warning: ‘ts2.p1’ is used uninitialized in this function [-Wuninitialized] printf("%s\n", ts2.p1 ? "NOT NULL" : "NULL"); ~~~^~~ main.c:24:31: warning: ‘ts2.p1’ is used uninitialized in this function [-Wuninitialized] printf("%p\n", (void*) ts2.p1); ~~~^~~ main.c:25:5: warning: ‘ts2.size’ is used uninitialized in this function [-Wuninitialized] printf("%zu\n", ts2.size); output: NULL (nil) 0 NOT NULL 0x7ffffcca5ea0 0 NULL (nil) 0 */