gpt4 book ai didi

c - 在C中读取文件到矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 23:24:14 25 4
gpt4 key购买 nike

我明白了

"Debug assertion failed"

当我尝试编译这段代码时出错。

有人可以解释一下它有什么问题吗?我想我在 fscanf 函数上做错了什么。谢谢。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
void input(FILE *fp, int **a,int m)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
fscanf(fp, "%d\n", *(a+i)+j);
}
}
}

int main()
{
FILE*fp;
int m,n,**a,i,j;
scanf("%d",&m);
fp=fopen("abc.txt","r");
a=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
*(a+i)=(int*)malloc(m*sizeof(int));
input(fp,a,m);
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
printf("%d ",*((a+i)+j));
}
printf("\n");
}
free(a);
return 0;
}

最佳答案

这里有几个问题,但为了直接回答您的问题,您没有向 fscanf() 提供地址,它将存储找到的整数。

不知道你的意图,我举个例子:

fscanf( fp, "%d\n", &(a[i]) );

也就是说数组 a 的第 ith<​​ 元素是要(覆盖)写入的元素。因此,如果 a[i] 是一个 int 指针,您可以在其中传递 &( (a[i])[j] )。

此外,我认为您打算替换:

*(a+i)=(int*)malloc(m*sizeof(int));

a[i] = (int*) malloc(m*sizeof(int));

关于c - 在C中读取文件到矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30948893/

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