【发布时间】:2020-02-20 08:37:24
【问题描述】:
我知道在越界访问数组的情况下:
int arr[2];
arr[3] = 10;
C 会在运行时抛出一个Segmentation fault (core dumped)。
但是,C 不会使用其他内容(例如 strcpy())检查越界访问。
我想确切地知道哪些情况会导致分段错误,哪些情况不会。
【问题讨论】:
-
访问你不拥有的内存是undefined behavior。您希望这会导致段错误,这表明有问题需要您查找和修复。但是“未定义的行为”意味着......任何事情都可能发生,包括没有段错误和您的代码工作正常的外观。
标签: c segmentation-fault coredump