Tag: 分割错误

解释段错误消息

以下段错误消息的正确解释是什么? segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4 in libQtWebKit.so.4.5.2[7f9beb83a000+f6f000] segfault at 10 ip 00007fa44d78890d sp 00007fff43f6b720 error 4 in libQtWebKit.so.4.5.2[7fa44d2f8000+f6f000] segfault at 11 ip 00007f2b0022acee sp 00007fff368ea610 error 4 in libQtWebKit.so.4.5.2[7f2aff9f7000+f6f000] segfault at 11 ip 00007f24b21adcee sp 00007fff7379ded0 error 4 in libQtWebKit.so.4.5.2[7f24b197a000+f6f000]

为什么这段代码在64位架构上进行段错误,但在32位上工作正常?

我遇到了以下的C拼图: 问:为什么下列程序在IA-64上进行段错误,但在IA-32上正常工作? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } 我知道64位机器上int的大小可能与指针的大小不一样( int可能是32位,指针可能是64位)。 但是我不确定这与上面的程序有什么关系。 有任何想法吗?

数据复制/扫描/读取到未初始化的指针时发生崩溃或“分段错误”

这个问题的目的是作为参考所有常见问题的性质: 当我将数据复制/扫描到未初始化的指针指向的地址时,为什么会出现神秘的崩溃或“分段错误”? 例如: char* ptr; strcpy(ptr, "hello world"); // crash here! 要么 char* ptr; scanf("%s", ptr); // crash here!