求助关于int arr[m][n][2]变长数组改为int (**arr)[2]程序该怎么修改

学码就是爱好 学码就是爱好 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
原程序是论坛一位同学的矩阵打印问题引发的,我编写了一个增强版,只会才用变长数组解决,想知道如果用指针怎么解决
#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;
}
}
...全文
评论 8
收藏 已收藏
分享
返回顶部
学码就是爱好
新手乐园 33,315 成员 41,769 内容