分配2d数组指针

时间:2012-03-10 17:17:37

标签: c++ 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;

编辑:

我发现了问题......它不在代码中......我正在删除我没有分配的内容。

1 个答案:

答案 0 :(得分:3)

您的代码中绝对没有错误。这十分完美。探测器必须在其他地方,假设nr_col_lin初始化为一些有效值,即确保它不是0或负数。如果是size_t或某些无符号整数值,请确保mn大于0。