gpt4 book ai didi

c - C 中的二维数组和警告 : assignment makes integer from pointer without a cast

转载 作者:行者123 更新时间:2023-12-04 05:20:12 26 4
gpt4 key购买 nike

我不经常用 C 编写,并且遇到了一些麻烦。对于初学者,我想我确信我正在将我从文本文件中读取的行正确地放入二维数组中。当我尝试将线放入数组时,我也遇到了问题。我收到一条警告,指出该赋值从指针生成整数而不进行强制转换。我希望它是一个字符,我认为这就是为什么我收到 Seg Fault 的原因,因为它大于我分配的大小。我在下面包含了我的代码。我敢打赌这是一个愚蠢的错误,我有一段时间没有使用 C,谢谢!

#include <stdio.h>
FILE *fid;
char line[70];
char dna[66800][70];

main() {
int counter = 0;
fid = fopen("dna.fna","r");
while(fgets(line, sizeof(line), fid) != NULL){
//fputs ( line, stdout );
dna[counter][0] = line; //Getting a Seg Fault here
counter++;
}

fclose(fid);

}

最佳答案

在这种情况下,赋值实际上应该是一个副本,如下所示:

strncpy(dna[counter], line, sizeof(line));

您收到的警告是由 line 引起的被衰减为一个指针并试图将其分配给 char .

您还必须确保 counter永远不会超过66800。

关于c - C 中的二维数组和警告 : assignment makes integer from pointer without a cast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773415/

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