为什么这个版本的 C 代码不起作用(导致分段错误)
#include <stdio.h>
int main()
{
int *p;
*p = 10;
return 0;
}
当这个工作时?
int main()
{
char c = 'c';
int *p;
*p = 10;
return 0;
}
两个代码片段都是错误的,不能说一个比另一个更错误,p
在两种情况下都未初始化,因此它可能包含也可能不包含有效的内存地址,不可能知道,行为是 undefined。在这种情况下,工作,无论这意味着什么,都在可能的结果范围内。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句