溢出时的 C++ 数组绑定(bind)异常 - "cout"并且没有 "cout"

标签 c++ arrays crash

#include <iostream>

int main()
{
  int array1[10] = {0};
  char* array2[10] = {'\0'};

  for (int i = 0; i <= 100; i++)
  {
    std::cout << array1[i];   // This does not crash 
    //std::cout << array2[i]; // This crashes
    array1[i]; // Wont crash here
    array2[i]; // nor here, Why? because there is no cout??
  }
  return 0;
}

好的,对于在这里回答的人,我知道我故意让数组溢出。那么,为什么程序在“cout”时崩溃,而在其他情况下却没有?

谢谢!

最佳答案

鉴于该值未被使用,它可能被编译器优化掉并且在运行时从未真正检索到。

关于溢出时的 C++ 数组绑定(bind)异常 - "cout"并且没有 "cout",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482784/

相关文章:

c++ - 打印的二叉树问题。用户输入不打印任何内容

c++ - 如何在C中使用unwrap函数和iota(复数中的 "i")?

c++ - 4K 纹理流(多分辨率)

java - Eclipse崩溃

java - 为什么初始化 Twig 用于在 GWT 应用程序中存储数据会崩溃?

android - 使用 DevIL 时出现错误 'IL_LIB_JPEG_ERROR 1506'

python - 如何检查两个元组列表是否相同

Python:复制 `array.array`

arrays - 查找在线性时间内出现超过 n/4 次的所有元素

ios - 应用程序崩溃但在调试器控制台中仍然显示 "running..."