通常在地址0处有什么

时间:2015-01-27 02:33:08

标签: c++

我已尝试过以下代码。但它总是崩溃。为什么?我甚至没有改变地址0的内容。 在mingw32-g ++上编译

#include<iostream>
int main(){
    int* p=0;
    std::cout<<*p;
}

1 个答案:

答案 0 :(得分:2)

取消引用空指针会产生未定义的行为。

在一个相当典型的案例中,那里真的没什么。例如,在受保护模式下的x86上,通常会为内存的开头设置一些页表条目,表示不存在任何内容,因此任何读取或写入该地址的尝试都将导致页面错误(例如,两个Windows和Linux这样做。)