gpt4 book ai didi

c - C 中的指针。为什么不打印我的二维数组?

转载 作者:行者123 更新时间:2023-12-04 12:31:33 25 4
gpt4 key购买 nike

我想在更复杂的问题中使用这段代码,但我没有让它工作。为什么我的矩阵没有被打印出来?

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

void print_mat(int **a, int n)
{
printf("\n");
int k,t;
for (k=1;k<=n;k++)
{
for (t=1;t<=n;t++)
printf("%d ", a[k][t]);
printf("\n");
}
}

int main()
{
int i,j,n,**a;
printf("Chess board size=");
scanf("%d", &n);
a=(int **)malloc(n*sizeof(int));
for (i=1;i<=n;i++)
a[i]=(int*)malloc(n*sizeof(int));
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
a[i][j]=-1;
print_mat(a,n);
return 0;
}

最佳答案

您应该首先为 int * 的大小进行 malloc不是 int , 改变

a = ( int ** )malloc( n * sizeof( int ) );

a = malloc( n * sizeof( int* ) ); //also no need to cast.

此外,正如@Russell Borogove 建议的那样,将循环更改为 for( i = 0; i < n; i++ )而不是来自 1 to n .

关于c - C 中的指针。为什么不打印我的二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13661071/

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