簡體   English   中英

解除二維數組指針

[英]Dealocating 2d arrays pointers

我究竟做錯了什么? 我使用new進行分配,但是當我嘗試刪除[]時,出現了錯誤。

mycode:

int** ma;
int n;
int m;
m = nr_col_lin;
n = nr_col_lin;

ma = new int*[m];
for(i = 0; i < m; i++)
    ma[i] = new int[n];

for (i = 0; i < m; i++)
{
    for (j = 0; j < n; j++)
    {
        ma[i][j] = 0;
    }
}

和脫位:

for(int i = 0; i < m; ++i)
     delete[] ma[i];

delete [] ma;

編輯:

我發現了問題...這不在代碼中...我正在刪除未分配的內容。

您的代碼絕對沒有錯。 這十分完美。 假設nr_col_lin已使用某個有效值初始化,即確保其不為0或負數,則nr_col_lin必須位於其他位置。 如果它是size_t或一些無符號整數值,請確保mn大於0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM