gpt4 book ai didi

c - C 中的输入文件双指针

转载 作者:行者123 更新时间:2023-11-30 19:49:45 24 4
gpt4 key购买 nike


我的代码中遇到一些问题,但无法修复。有人能发现我的代码中的缺陷吗?我想从输入文件获取城市距离并复制 map 中的城市名称而不重复。我的问题是段错误。输入文件由几行组成,两个城市名称以及它们之间的距离,我尝试获取城市名称并将它们复制到名为 map 的双指针。 P.S 抱歉英语不好

city1[0]  = (char*)malloc(sizeof(char)*10);                     
city2[0] = (char*)malloc(sizeof(char)*10);
map[0] = (char*)malloc(sizeof(char)*10);
map[1] = (char*) malloc(sizeof(char)*10);
map[2] = (char*) malloc(sizeof(char));
map[2] = NULL;
fscanf(data, "%s %s %d", city1[0], city2[0], &distance);
strcpy(map[0],city1[0]);
strcpy(map[1],city2[0]);
j=2,i=1;
while(fscanf(data, "%s %s %d",city1[i],city2[i], &distance)!=EOF){
city1[i+1] = (char*)malloc(sizeof(char) *10);
city2[i+1] = (char*)malloc(sizeof(char)*10);
if(checker(map,city1[i])==1){
map = realloc(map, sizeof(char*)*(j));
map[j] = (char*) malloc(sizeof(char));
strcpy(map[j], city1[i]);
map[j+1] = (char*) malloc(sizeof(char));
map[j+1] != NULL;
j++;
}
if(checker(map,city2[i])==1){
map = realloc(map, sizeof(char*)*(j));
map[j] = (char*) malloc(sizeof(char));
map[j+1] = (char*) malloc(sizeof(char));
strcpy(map[j], city2[i]);
map[j+1] = NULL; j++;
}
}

最佳答案

显示您正在使用的变量的定义。

我认为您对使用malloc()为字符串动态分配空间有一些误解。您通过多次调用 malloc() 为单个字符分配空间。这看起来很困惑。

另外,请尝试更清楚地了解您的代码应该做什么。

关于c - C 中的输入文件双指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11014750/

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