我正在尝试制作一个动态二维数组。
这是我的代码:
bool b_alloc_table_2_dim(int ***piTable, int iSizeX, int iSizeY)
{
*piTable = new int*[iSizeX];
for (int ii = 0; ii < iSizeX; ii++)
*piTable[ii] = new int[iSizeY]; // here i get the exception
return true;
}
int main()
{
int **x ;
b_alloc_table_2_dim( &x, 3, 5);
return 0;
}
我找不到代码有什么问题。调用我的函数后 x 应该指向二维数组。
该[]
运营商优先*
。cppreference
所以线
*piTable[ii] = new int[iSizeY];
相当于
*(piTable[ii]) = new int[iSizeY];
你想写的是:
(*piTable)[ii] = new int[iSizeY];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句