分段错误进程返回139(0x8b)



我是Linux和代码块的新手。在构建下面的代码时,我收到此错误:

"分段错误进程返回 139 (0x8b)"

我知道这与记忆有关,但我找不到问题所在。在使用 Makefile 编译文件或在终端中单独编译文件时,我没有收到任何错误。

main接收 2 个参数(argv) ComputersInNet.txt - > argv[1] Simulation.txt -> argv[2]

而且我无法弄清楚如何使用代码块将这些文件添加到项目中,同样在 Windows (Visual Basic) 中,代码也能完美运行。

我无法正确粘贴代码(5 个文件:2 .h 和 3 .cpp),您可以从下面的链接下载它们,包括我用作参数的两个 txt 文件。

http://depositfiles.com/files/cv2bwmz74

发生代码片段问题,从main()调用子例程Create_PC_List()以创建计算机列表。

void Router :: Create_PC_List (char *fname) //Reads from file & creates list of computers
{
char C;
char* IPAD=NULL;
FILE* fp;
FILE* msg;
int counter=0;
fp = fopen (fname,"r"); //Reading from Argv parameter file - list of computers in the network
if(fp == NULL)
        cout << "Opening file failed: %sn" << strerror(errno) << endl;
msg = fopen (fname, "r"); //Reading from Argv parameter file - list of computers in the network
    while((C=fgetc(fp)) != EOF) //Running trougth the file
{
    ...

输出:

Opening file failed: No such file or directory
followed  by segmentation fault.

我们可以看到fopen()失败并出现错误"No such file or directory"。因此,您需要找到一种方法将三个文本文件添加到可用于fopen()的代码块中。

分段错误的第二个原因是 fp 提供给getc()是一个包含非有效 FILE 对象的 NULL 地址的FILE *指针。

相关内容

  • 没有找到相关文章

最新更新