如何动态创建二维数组并初始化,两个维度都未知

在论坛看了好多例子,感觉鱼龙混杂,请大拿推荐靠谱方案图片说明

 int** ary = new int*[rowCount];
for(int i = 0; i < rowCount; ++i)
    ary[i] = new int[colCount];

设两维为x,y,即数组为a[x][y],用int a[x][y]为例子,
int* b = (int*)malloc(sizeof(int)*x*y);
int** a = (int **)malloc(sizeof(int*)*x);
for (int m = 0; m < x; m++)
{
a[m] = b+m*y;
}