簡體   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