当我运行以下代码时:
#include <stdio.h>
int main(int argc, char *argv[])
{
int p = 0;
p = strcmp(NULL,"foo");
return 0;
}
我收到段错误。echo $? 显示 139。但是当我运行#include <stdio.h>
int main(int argc, char *argv[])
{
int p = 0;
strcmp(NULL,"foo"); // Note removed assignment
return 0;
}
我没有得到任何分段错误。有人可以帮忙解释一下吗?
这是我的gcc信息:
> gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8)