方法一:

#define ROW  3
#define COL 4
void Test()
{
	int(*p)[ROW] = (int(*)[ROW])malloc(sizeof(int)*ROW*COL);
	for (int i = 0; i < ROW; ++i)
	{
		for (int j = 0; j < COL; ++j)
		{
			p[i][j] = i*COL +j;
		}
	}
	for (int i = 0; i < ROW; ++i)
	{
		for (int j = 0; j < COL; ++j)
		{
			printf("%d ", p[i][j]);
		}
	}
}

方法二:

void Test()
{
	int **p = (int **)malloc(sizeof(sizeof(int*)*ROW));
	for (int i = 0; i < ROW; ++i)
	{
		p[i] = (int *)malloc(sizeof(int)*COL);
	}
	for (int i = 0; i < ROW; ++i)
	{
		for (int j = 0; j < COL; ++j)
		{
			p[i][j] = i*COL + j;
		}
	}
	for (int i = 0; i < ROW; ++i)
	{
		for (int j = 0; j < COL; ++j)
		{
			printf("%d ", p[i][j]);
		}
	}
}