int main(void) {
printf("输入矩阵的高和宽\n");
scanf_s("%d %d", &nRow, &nCol);
int **p = malloc_Array2D(nRow, nCol);
//输入二维数组
int i, j;
for (i = 0; i < nRow; i++)
for (j = 0; j < nCol; j++)
{
printf("%d ", p[i][j]);
scanf_s("%d", &p[i][j]);
}
}
int** malloc_Array2D(int row, int col) {
int size = sizeof(int);
int point_size = sizeof(int*);
//先申请内存,其中point_size * row表示存放row个行指针
int **arr = (int **)malloc(point_size * row + size * row * col);
if (arr != NULL)
{
memset(arr, 0, point_size * row + size * row * col);
int *head = (int*)((int)arr + point_size * row);
while (row--)
arr[row] = (int*)((int)head + row * col * size);
}
return (int**)arr;
}