1
4

1 に答える 1

4

コードスニペットの問題が発生し、Create_PC_List()からサブルーチンが呼び出されmain()てコンピューターのリストが作成されます。

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: %s\n" << 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"。したがって、で利用できるようになっているコードブロックに3つのテキストファイルを追加する方法を見つける必要がありますfopen()

次に、セグメンテーション違反の理由はfpであり、有効なFILEオブジェクト ではないNULLアドレスを含むポインターがgetc()提供されます。FILE *

于 2012-12-03T20:04:09.283 に答える