二维数组定义的一般形式是:
在子函数申请二维数组,主函数使用,可以用动态申请.
方法不止一种,我这里用指针的指针实现二维数组.
二维数组除了行列,本身地址也是连续的,从第一行第一列的元素地址++,可以取出所有元素.所以我这里先申请了完整的连续地址.
#includestdio.h
#includemalloc.h
int?**?sr(void)
{
int?i,j;
if(!memory?||?!arr){
printf("内存申请错误!\n");return?NULL;}
arr[j++]=memory[i];
scanf("%d",arr[i][j]);
return?arr;
}
int?main(void)
int?i,j,**arr=sr();
if(!arr)
return?1;
printf("---主函数调用子函数定义的二维数组---\n");
printf("%d?",arr[i][j]);
printf("\n---实现二维数组地址连续性---\n");
int?*p=arr[0][0];
printf("%d?",*p++);
return?0;
①.、使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小.
#include?stdio.h
#include?malloc.h
int?main()
int?**a;
int?i,?j;
//初始化
a[i][j]?=?i+j;
//输出测试
printf?("%d?",?a[i][j]);
printf?("\n");
//释放动态开辟的空间
free(a[i]);
free(a);
/*
输出:
*/
以上就是土嘎嘎小编为大家整理的c语言中函数定义二维数组相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!