ファイルから2Dダイナミックアレイへの読み込み中にセグメンテーションフォルトが発生しました。私はこれが少し漠然とした質問であることを知っていますが、これが私の最初のCコードであり、私は問題の原因を突き止めることができませんでした。どんな方向にも感謝します。 これらは私の変数です:ファイルから2D配列を読み込もうとしているときにセグメンテーションエラーが発生しました
int i;
int rowsize=0;
int colsize=0;
int colenter=0;
int rowenter=0;
int colexit=0;
int rowexit=0;
char sizestring[20];
char enterstring[20];
char exitstring[20];
int line=0;
int j;
int k;
char**mazearray;
FILE*file;
これは私の割り当てです。
mazearray = (char**) malloc(sizeof(char*)*rowsize);
for(i =0; i<rowsize; ++i)
{
mazearray[i]= (char*)malloc(sizeof(char)*colsize);
}
これは私がファイルから読み込み、情報を解析しようとしています。まず、迷路に関する情報を含む3行の文字列(Array size、enterance、exitなど)を読み込み、次に2d配列にforループを書き込んでみます。
file = fopen(argv[1],"r");
if (!file)
{
printf("The file is not connected/n");
}
while (!feof(file))
{
while(line<3)
{
if(line==0)
{
fgets(sizestring,20,file);
sscanf(sizestring,"%d,%d", &colsize, &rowsize);
line++;
}
else if(line ==1)
{
fgets(enterstring,20,file);
sscanf(enterstring,"%d,%d",&colenter, &rowenter);
line++;
}
else if(line ==2)
{
fgets(exitstring,20,file);
sscanf(exitstring, "%d,%d", &colexit, &rowexit);
line++;
}
}
for(j=0; j<rowsize; j++)
{
for(k=0; k<colsize; k++)
{
fscanf(file,"%c",&mazearray[j][k]);
}
}
}
fclose(file);
また、任意の方向が役立ちます。おかげ
割り振りはいつですか?実際のサイズを読む前に? –
私は問題がここにあると思う 'int rowsize = 0; int colsize = 0; ' – roottraveller
エラーログとサンプルデータをファイルに追加できますか? – cse