我不确定我是否完全理解未定义行为可能危及程序的程度.
假设我有这段代码:
#include <stdio.h>
int main()
{
int v = 0;
scanf("%d", &v);
if (v != 0)
{
int *p;
*p = v; // Oops
}
return v;
}
Run Code Online (Sandbox Code Playgroud)
这个程序的行为是否仅针对v非零的情况而定义,或者即使v为零也未定义?