###実現したいこと
mallocとreallocを使ってテキストファイルの記述を一行ずつ、逆順でもう一つのテキストファイルに出力させようとしているのですが、エラーがでて一向にできず困っています。
###発生している問題・エラーメッセージ
0xC0000005: 場所 0xCDCDCDCD の読み取り中にアクセス違反が発生しました。
###該当のソースコード
C言語
1int main() 2{ 3 FILE *fp_R; 4 FILE *fp_W; 5 char buff[256]; 6 char **ptr = (char**)malloc(0); 7 fopen_s(&fp_R, "略", "r"); 8 fopen_s(&fp_W, "略", "w"); 9 10 if (fp_R == NULL) { 11 puts("ファイルのオープンに失敗しました。"); 12 exit(-1); 13 } 14 15 if (fp_W == NULL) { 16 puts("ファイルのオープンに失敗しました。"); 17 exit(-1); 18 } 19 20 int i = 0; 21 while (fgets(buff, 100, fp_R) != NULL) { 22 char *p = (char *)malloc(strlen(buff) + 1); 23 strcpy_s(p, strlen(buff) + 1,buff); 24 ptr[i] = p; 25 ++i; 26 ptr = (char **)realloc(ptr, sizeof(char *)* i); 27 } 28 --i; 29 while (i >= 0) { 30 fprintf(fp_W,"%s\n",ptr[i]); 31 --i; 32 } 33 34 free(ptr); 35 36 fclose(fp_R); 37 fclose(fp_W); 38 return 0;
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/22 04:22