繁体   English   中英

C++ 中动态二维数组的访问冲突

[英]access violation with dynamic 2-dimension array in C++

谢谢你来帮忙
我想将动态二维维度设为 char

int n;
char** stars;
 int main() {
    cin >> n;
    for (int i = 0;i < n;i++) {
        stars = new char* [n];
        stars[i] = new char[n];
        for (int j = 0;j < n;j++) {
            stars[i][j] = '*';
        }

    }
    for (int i = 0;i < n;i++) {
        for (int j = 0;j < n;j++) 
            cout << stars[i][j];   //this is where access violation is occured
        cout << endl;
    }
    return 0;
}

而且我还想知道,如果我将 * 放在此数组上,那么每次插入时都会在内存(可能是此代码中的堆栈)上生成包含 '*' 的新字符数据?

        stars = new char* [n];

在循环中的位置错误,因此您为每个字符串重新分配它,并且在新分配的矩阵中只分配一个字符串。

stars = new char* [n]; 为什么要在 for 循环中声明这个? 它将为每个循环一次又一次地分配。 只是在外面声明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM