linux下程序崩溃,其中topo[]是指针数组,代表文件的每一行,line_num是文件总行数+1;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下程序崩溃,其中topo[]是指针数组,代表文件的每一行,line_num是文件总行数+1;相关的知识,希望对你有一定的参考价值。

文件形式是这样1 1 1(空行)2(空行)1 2 2 22 2 2 2 想从第五行开始读然后以int数组保存;结果编译无问题,运行程序崩溃,删去while中的sscanf一句则无问题,这是为何?
文件形式

参考技术A 如果是相对路径无论windows还是linux都是一样的。 如果是绝对路径,只需要看好配置文件所在linux的目录,其他的操作和windows一样(例如:linux【/usr/local/src/1.config】,windows【c:/1.config】) 使用File就可以直接读取了。追问

现在的问题是如果删去while中sscanf调试运行时不会崩溃,说明路径应该没问题吧?
为何有这个sscanf就会崩溃呢

linux上的core文件,麻烦牛人们帮忙解释下是啥原因

参考技术A 关于UNIX/Linux系统下面产生的core文件,根据我使用系统的经验,通常是由于自己在编写程序的过程中,由于自己的疏忽,使自己编写的程序产生了数组越界、或者是程序中的指针指向了一块无效的内存区域,产生的内存溢出错误。这一点在C语言编程过程中尤为明显,即:虽然定义了一个指针变量,但是未对该变量进行初始化、且判断该指针是否为空指针,而在后面的程序中又使用到了该变量,这时候肯定就会产生内存溢出错误。通常产生的提示信息就是:Segmentfault,CoreDumped!此时再一看自己当前工作的目录下面,就会自动产生出一个文件名为core的文件,通常该文件占得空间也是比较大的,至少好几兆字节。

以上是关于linux下程序崩溃,其中topo[]是指针数组,代表文件的每一行,line_num是文件总行数+1;的主要内容,如果未能解决你的问题,请参考以下文章