我无法在函数中动态分配 2D 数组

I couldn't dynamically allocate 2D array in a function

本文关键字:动态分配 2D 数组 函数      更新时间:2023-10-16

我尝试通过传递给函数来动态分配我的 2D 数组,但它没有那个大小。

你能说我吗,我的错误在哪里?

bool b_alloc_table_2_dim(int** piTable, int iSizeX, int iSizeY)
{
if ((iSizeX < 0) || (iSizeY < 0))
return false;
piTable = new int*[iSizeX];
for (int i = 0; i < iSizeX; i++)
piTable[i] = new int[iSizeY];
return true;
}
int main()
{
int** pi_table;
cout << "Allocation Result :" << b_alloc_table_2_dim(pi_table, 5, 3) << endl;
return 0;
}

如果要将参数修改为函数,则需要通过引用或指针传递它。将您的函数签名更改为以下内容:

bool b_alloc_table_2_dim(int**& piTable, int iSizeX, int iSizeY) {