c语言fclose导致系统崩溃,c - fclose()导致分段错误 - 堆栈内存溢出

博主在解析制表符分隔的文本文件时遇到问题,当从'chr1'切换到'chr2'时,fclose()函数导致了段错误。尽管确认不是由NULL指针引起的,且openSourceFile函数在处理'chr1'时正常工作,但fclose(merbaseIn)依旧触发了错误。博主寻求解决方案。
摘要由CSDN通过智能技术生成

我有一个制表符分隔的文本文件,我正在解析。 其第一列包含格式为chrX字符串,其中X表示一组字符串,例如“1”,“2”,......,“X”,“Y”。

当解析文件时,这些都存储在称为chromosome的char* 。

文本文件按字典顺序排在第一列,即,我将有一些以“chr1”开头的行,然后是“chr2”等。

在每个“chrX”条目中,我需要打开与此条目关联的另一个文件:

FILE *merbaseIn;

// loop through rows...

if (chromosome == NULL)

openSourceFile(&chromosome, fieldArray[i], &merbaseIn, GENPATHIN);

else {

if (strcmp(chromosome, fieldArray[i]) != 0) { // new chromosome

fclose(merbaseIn); // close old chromosome FILE ptr

free(chromosome); // free old chromosome ptr

openSourceFile(&chromosome, fieldArray[i], &merbaseIn, GENPATHIN); // set up new chromosome FILE ptr

}

}

// parse row

我有openSourceFile函数,定义如下:

void openSourceFile (char** chrome, cons

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值