0
#include <stdio.h>
#include <stdlib.h>
#include "ReadMethods.h"


int main(int argc,char * argv[])
{

DPDA WordChecker;
DPDA * WordCheckerPointer=&WordChecker;

WordChecker.DPDAFilename=(char*)malloc(25*sizeof(char));
WordChecker.DPDAInputFilename=(char*)malloc(25*sizeof(char));
WordChecker.DPDAOutputFilename=(char*)malloc(25*sizeof(char));
strcpy( WordChecker.DPDAFilename,argv[1]);
strcpy( WordChecker.DPDAInputFilename,argv[2]);
strcpy( WordChecker.DPDAOutputFilename,argv[3]);

readDPDA(argv[1],WordCheckerPointer);
readInputLines(argv[2],WordCheckerPointer,argv[3]);

return 0;
}

これは、mallocs から最後の strcpy() まで、合計 6 行でエラーが発生する私のコードです。ヘッダファイル。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tagRule{
char *startingState;
char symbolToPop;
char expectedInput;
char *endingState;
char symbolToPush;
}Rule;

typedef struct tagStackDPDA{
char * arrayOfSymbols;
int stackElementCount;
char * currentState;
}stackDPDA;

typedef struct tagDPDA{
char * alphabet;
char * stackSymbols;
char ** states;
char *startingState;
char **finalStates;
int finalStatesAmount;
Rule * ruleList;
stackDPDA stackOfDPDA;
int sizeArray[4];//This array holds amount values of states,alphabet symbols,stack       symbols and transition rules
char *DPDAFilename;
char *DPDAInputFilename;
char *DPDAOutputFilename;
}DPDA;

コードはコードブロック環境では正常に動作しますが、gcc (-Wall -ansi) では正常に動作します。これらのファイル名は入力テキスト ファイルから取得されますが、このエラーが発生する可能性があるかどうかはわかりません。編集:ちなみに、このコマンドラインを使用してコンパイルしています。

gcc -Wall -ansi main.c ReadMethods.h -o WordChecker
4

1 に答える 1