c++ - 在一个简单的程序中访问内存(堆)时出错

标签 c++ arrays heap-corruption

当我填充数组(doska)时一切正常,但是当我尝试打印元素时(cout<< 我得到错误

   #include <iostream>
    using namespace std;
    struct doskas{
         int number;
        char ch;
    };
    int main(){
        auto doska= new doskas[8][8];
        auto ss="0abcdefgh";
        for(int i=1;i<=8;i++){
            for(int j=1;j<=8;j++){
            doska[i][j].ch=ss[i];
            doska[i][j].number=j;
            }
        }

        for(int i=1;i<=8;i++)
            for(int j=1;j<=8;j++){
                cout<<doska[i][j].ch;//ERROR
                cout<<doska[i][j].number;
            }

        system("pause");
        return 0;
    }

最佳答案

从 0 开始尝试并严格小于 8,而不是从 1 到 8。

关于c++ - 在一个简单的程序中访问内存(堆)时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7946002/

相关文章:

c++ - 无法在 C++ 头文件中创建数组?

c++ - 无法推断模板参数( vector 、std::function)

c++ - 我们可以在另一个成员函数的参数列表中使用一个成员函数的decltype吗?

c++ - 尝试删除初始化列表构造函数并不总是有效

python - 在 Python 的数组数组中拆分字符串的值

c++ - CLR4 托管接口(interface)导致堆损坏?

arrays - VBA - 获取数组中第n个最大值的索引

java - 以特定模式读取 csv 文件并存储在 map 或二维数组中

c++ - 进入main前访问违规读取位置

c++ - SetClipboardData() 期间的堆损坏