我知道传递空指针会触发未定义的行为,但如果我使用calloc()初始化 char 数组并打印它,例如:
char * a = calloc(10, sizeof(char));
printf("%s\n", a);
Run Code Online (Sandbox Code Playgroud)
calloc()应该将 char 数组初始化为 0。由于在 ASCII 表中 0 指的是 NULL,所以我期望未定义的行为。然而,每次我运行它时,它实际上什么也打印不出来。这个输出是固定的吗?我可以推理输出吗?