当c ++程序出现运行时错误时发生了什么?

时间:2015-01-21 04:12:46

标签: exception-handling operating-system compiler-warnings

比方说,在C ++中,如果解引用指向已经释放的内存的指针,我将收到错误的访问消息并返回操作系统。有人能解释一下那里发生了什么吗?这是关于OS /编译器的访谈问题。

1 个答案:

答案 0 :(得分:0)

一旦你 delete 那个内存,C ++就会将其标记为免费,并且可以将其发送给任何要求它的人。

因为删除指向它的内存块 does not zero the value of all pointers 。删除内存只是说明内存可用于某些其他目的。在此之前, memory may appear to be intact - 但你不能指望它,在一些编译器/运行时/架构组合上,你的 program will behave differently - 它甚至可能会崩溃。

相关问题