求助关于int arr[m][n][2]变长数组改为int (**arr)[2]程序该怎么修改
原程序是论坛一位同学的矩阵打印问题引发的,我编写了一个增强版,只会才用变长数组解决,想知道如果用指针怎么解决
另外 为什么我采用函数调用就得不到正确的运行
#include <stdio.h>
int main()
{
unsigned int a=0,b=0;
printf("Introduzca 2 numero(entre 1 y ~,非数字退出) :");
while(scanf("%d %d",&a,&b))
{
int c[a][b][2];//此处不采用变长数组,而是采用指针,后面的内存申请怎么处理
for(int i=0;i<a;i++)
for(int j=0;j<b;j++)
{
c[i][j][0]=i;
c[i][j][1]=j;
}
for(int i=0;i<a;i++,printf("\n"))
for(int j=0;j<b;j++)
printf("[%d %d]",c[i][j][0],c[i][j][1]);
printf("Introduzca 2 numero(entre 1 y ~,非数字退出) :");
}
return 0;
}另外 为什么我采用函数调用就得不到正确的运行
#include <stdio.h>
void primatrix(int pa,int pb,int pc[pa][pb][2]);
void assmatrix(int aa,int ab,int ac[aa][ab][2]);
int main()
{
unsigned int a=0,b=0;
printf("Introduzca 2 numero(entre 1 y ~,非数字退出) :");
while(scanf("%d %d",&a,&b))
{
int c[a][b][2];
assmatrix(a,b,c[a][b][2]);
primatrix(a,b,c[a][b][2]);
printf("Introduzca 2 numero(entre 1 y ~,非数字退出) :");
}
return 0;
}
void primatrix(int pa,int pb,int pc[pa][pb][2])
{
for(int i=0;i<pa;i++,printf("\n"))
for(int j=0;j<pb;j++)
printf("[%d %d]",pc[i][j][0],pc[i][j][1]);
}
void assmatrix(int aa,int ab,int ac[aa][ab][2])
{
for(int i=0;i<aa;i++)
for(int j=0;j<ab;j++)
{
ac[i][j][0]=i;
ac[i][j][1]=j;
}
}
...全文
相关推荐
函数:int **array2(int **arr,int n,int m) , C++ 输入二维数组 ,返回值二维数组
函数:int **array2(int **arr,int n,int m) , C++ VS2012项目,输入二维数组 ,返回值二维数组,arr[n][ [m],n行m列数组arr。
C++实现两个有序数组的合并
主要为大家详细介绍了C++实现两个有序数组的合并,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
cpp代码-(数组)将两个升序数组合并为一个升序数组
cpp代码-(数组)将两个升序数组合并为一个升序数组
c代码-N进制数num转换成M进制下的数
c代码-N进制数num转换成M进制下的数
报数出队程序(C语言数组版)
利用数组的报数出队程序,不同于简单的链表报数!!


新手乐园
