我有一個製表符分隔的文本文件,我正在解析。 第一列包含 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, const char* field, FILE** filePtr, const char *path) {

char filename[100];

*chrome = (char *) malloc ((size_t) strlen(field));

if (*chrome == NULL) {

fprintf(stderr,"ERROR: Cannot allocate memory for chromosome name!");

exit(EXIT_FAILURE);

}

strcpy(*chrome, field);

sprintf(filename,"%s%s.fa", path, field);

*filePtr = fopen(filename,"r");

if (*filePtr == NULL) {

fprintf(stderr,"ERROR: Could not open fasta source file %sn", filename);

exit(EXIT_FAILURE);

}

}

問題是,我的應用程序退出了從第一個染色體到第二個( 從 chr1 到 chr2 )的分割錯誤,我關閉了第一個染色體文件:fclose(merbaseIn);

我知道我沒有傳遞 fclose的空指針,因為直到分割錯誤,我正在從這個文件中讀取數據。 我甚至可以用一個條件包起來,但我仍然有錯誤:if (merbaseIn!= NULL) {

fclose(merbaseIn);

}

而且,我知道 openSourceFile 是( 至少對於 chr1,在設置 FILE*的第一個文件句柄時),因為我的應用程序解析 chr1 行,並正確地從 FILE* 源文件讀取數據。

這個 fclose 調用引起一個分段錯誤的原因是什麼?

c语言打开文件出现分段故障,c fclose() 导致分段故障_segmentation-fault_开发99编程知识库...相关推荐

  1. linux 协议错误,在linux客户机上:协议错误,Vagrant无法挂载同步的文件夹_vagrant_开发99编程知识库...

    使用一個 Windows 主機和一個運行在in的Linux客戶機使用同步文件夾,我有一個奇怪的問題. 在第一個引導( 或者在 vagrant destroy 之後) 中,項目文件夾掛載到/vagran ...

  2. 决策树c语言程序代码,R C5.0 决策树c50代码,名为 exit 1_r_开发99编程知识库

    我收到以下错误 c50代码,名为 exit exit exit 我是根据Kaggle提供的泰坦尼克数据做# Importing datasets train # this is the structu ...

  3. c语言多线程编程随机数,在c 中使用线程安全的随机数,多线程_c_开发99编程知识库...

    我一直試圖通過檢查,並且傳遞 2億個隨機數,並在線程之間劃分它們. 一旦達到 1億個隨機數我一直得到一個錯誤. 我在哪裡分配錯誤或者我做錯了什麼?struct thread { long long i ...

  4. c语言实现自动打开文件夹,c语言打开文件(c语言文件打开方式代码)

    1.2 文件的输入输出函数 键盘.显示器.打印机.磁盘驱动器等逻辑设备, 其输入输出都可以通过文件管理的方法来完成.而在编程时使用最多的要算 是磁盘文件, 因此. { printf("File ope ...

  5. c语言文件打开方式字符串,C语言打开文件-C语言打开文件的方式-C语言以只读方式打开文件-C语言以读写方式打开文件-嗨客网...

    C语言打开文件教程 在 在 C 语言中,打开文件使用 fopen C语言fopen函数详解 语法 FILE *fopen(char *filename, char *mode); 参数 参数 描述 f ...

  6. c语言打开文件出现分段故障,C文件I / O中的分段故障11(Segmentation Fault 11 in C File I/O)...

    C文件I / O中的分段故障11(Segmentation Fault 11 in C File I/O) 我正在编写一个函数来搜索格式如下的文本文件: #用户1 \路径\ #用户2 \路径\ #用户 ...

  7. c语言打开文件出现分段故障,分割故障的常见原因的确定列表

    肥皂起泡泡 警告!以下是电势分割错误的原因.几乎不可能列出所有的理由...此列表的目的是帮助诊断现有的分段故障.分割错误与未定义行为的关系不可能压力够大了!以下所有可能造成分段错误的情况在技术上都是未 ...

  8. c语言打开文件出现分段故障,我不明白为什么我使用ifstream时出现分段错误

    我对C++相当陌生.我试图打开一个文件并将其传递给另一个方法,以便我可以从ifstream读取数据.这是打开文件的方法.我不明白为什么我使用ifstream时出现分段错误 int main() { / ...

  9. 用C语言打开文件的几种方式及区别

    文件使用方式 含义 如果指定的文件不存在 r(只读) 读取一个已经存在的文本文件 出错 w(只写) 打开一个文本文件,输出数据,若文件存在则文件长度清为0,即该文件内容会消失 建立新文件 a (追加) ...

最新文章

  1. 电脑文件加密_电脑文件加密软件哪个好?企业加密软件排行榜
  2. 单系统站内信数据库设计思路
  3. C++知识点13——友元,类的声明
  4. 【异常-举例6:finally】
  5. AF_UNIX和AF_INET
  6. 李洪强iOS经典面试题36-简单介绍 ARC 以及 ARC 实现的原理
  7. php 函数变量的顺序,PHP实现参数的自定义顺序调用 | 剑花烟雨江南
  8. 还没使用过Web Worker? 推荐一款开源工具Workerize-Loader,让你在webpack项目中轻松使用Web Worker
  9. Android系统(109)---ADB命令
  10. 安卓文件操作全解:内部文件、公共文件、私有文件、app静态文件
  11. qdir 自动创建多级目录_QDir 类 - 目录信息类
  12. python pandas安装不了_python安装pandas问题!python pandas安装教程
  13. 初步认识Apache Ignite
  14. java 保存对象_Java将对象保存到文件中/从文件中读取对象
  15. outlook服务器邮件满了怎么办,Outlook邮箱不能接收邮件提示邮件箱已满怎么办?
  16. 手机连接ftp文件服务器,手机链接ftp服务器地址
  17. 离散数学 1. 符号表、集合和命题
  18. 高手UI设计师干货总结分享品牌LOGO设计的过程要求及方法
  19. The North American Invitational Programming Contest 2016 I-Tourists
  20. MySQL连接速度太慢_mysql-连接速度非常慢(1秒)

热门文章

  1. NSEnumerator使用
  2. 关于JVM的几道面试题
  3. STL 容器和迭代器连载8_访问顺序容器的元素
  4. 山寨威武 仿冒Xoom先于行货获得Android 4.0升级
  5. 解决FastJson中“$ref 循环引用检测”的问题的几种方式
  6. 木兰已出现,木兰已死?
  7. Transformer-XL语言模型:超长上下文依赖
  8. pip install mysqlclient 报错:error: Microsoft Visual C++ 14.0 is required.
  9. 初创企通过哪里报名可参与赛事活动
  10. C++函数返回局部变量