gpt4 book ai didi

c - 如何使用指针数组?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:07 26 4
gpt4 key购买 nike

我编写了一个 C 程序来创建一个指针数组,每个单独的指针依次是单独的数组(有点像二维数组)。我写了下面的 C 代码,但它不起作用。

#include<stdlib.h>
#include<conio.h>
int main(void)
{
int rows=5,cols = 5;
int *a[100];
int i = 0;
int j;
int k = 0;
int b[100];
while(i<rows)
{
printf("\nEnter the %d row: ",i);
for(j=0;j<cols;j++)
scanf("%d",&b[j]);

a[k++] = b;
i = i + 1;
}
k = k-1;
for(i=0;i<=k;i++){
for(j=0;j<cols;j++){
printf("%d ",a[i][j]);
}
}

getch();
return 0;
}

我想要类似 5*5 矩阵结构 的东西,但我想像处理一维数组一样处理每一行。谁能告诉我该怎么做?

最佳答案

错误在这里:

a[k++] = b;

我假设您正在尝试制作 b 的副本并将其添加到 a,但您实际上只是在添加对 b 的另一个引用>.

试试这个:

// int b[100]; // Delete this!
while(i<rows)
{
int *b = calloc(cols, sizeof(int)); // Replacement for int b[100]
printf("\nEnter the %d row: ",i);
for(j=0;j<cols;j++)
scanf("%d",&b[j]);

a[k++] = b; // Now it's safe to do this, because `b` is a different array each time
i = i + 1;
}

关于c - 如何使用指针数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009413/

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