c语言返回一个二维数组

标题:c语言返回一个二维数组

参考blog:c语言返回一个二维数组

#include<stdio.h>
#include<stdlib.h>

int ** getInfo(){	
	int ** b;
	//定义一个二维数组 
	b = (int **)malloc(3 * sizeof(int *));
	for(int i = 0; i < 3; i++){
		b[i] = (int *)malloc(4 * sizeof(int));
	}
	
	int t = 0;
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 4; j++){
			b[i][j] = t++;
		}
	}	
	
	return b; 
}

int main(void){
	int a[3][4]	= {
		{
			1,2,3,4
		},
		{
			1,2,3,4
		},
		{
			1,2,3,4
		}
	};
	
	//二维数组的赋值,赋给指针 
	int (* pdf)[4] = a;
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 4; j++){
			printf("%d ", pdf[i][j]);
		}
		printf("\n");
	}
	
	//int ** d = a;
	
	//测试返回一个二维数组
	printf("测试返回一个二维数组\n"); 
	int **c = getInfo();
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 4; j++){
			printf("%d ", c[i][j]);
		}
		printf("\n");
	}
	return 0;
}