gpt4 book ai didi

c - 用乘法表填充二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:05 25 4
gpt4 key购买 nike

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

int** createMatrix(int n)
{
int i, a, **tab,x;
tab=(int**)malloc(n*sizeof(int*));
if(tab==0)
{
return NULL;
free(tab);
}
for(i=0;i<n;i++)
{
tab[i]=(int*)malloc(n*sizeof(int));
if(tab[i]==NULL)
{
for(x=0;x<i;x++)
{
free(tab[x]);
}
free(tab[i]);
return NULL;

}
}
}

void fillMatrix(int*** tab, int n)
{
int i, a;
for(i=0;i<n;i++)
{
for(a=0;a<n;a++)
{
*tab[i][a]=(a*i);
}
}
}

int main()
{
int roz, **tab,i,x;
printf("size of the array: \n");
scanf("%d",&roz);
tab=createMatrix(roz);
if(tab==NULL)
{
printf("error");
return -1;
}
fillMatrix(&tab, roz);
for(i=0;i<roz;i++)
{
printf("\n");
for(x=0;x<roz;x++)
printf("%d",tab[i][x]);
}
return 0;
}

嗨!我需要编写一个制作二维数组的程序,我想用乘法表填充它们。程序编译时没有任何警告或错误,但在输入 puttintan 后它崩溃了。顺便问一下,你能告诉我为什么我必须在 fillMatrix 中放入 3x* 吗?

最佳答案

int** createMatrix(int n)

你应该从我看到你没有做的函数返回双指针。

int** createMatrix(int n)
{
int i, a, **tab,x;
tab=(int**)malloc(n*sizeof(int*));
// Do your allocations and other stuff

return tab;
}

注意使用三重指针访问元素。喜欢

(*tab)[i][a] = (a*i);

您可以使用双指针本身完成工作。

关于c - 用乘法表填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27949935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com