0
テキストファイルから2次元の動的配列に文字を読み込む際にいくつかの問題が発生しました。「Problem_03_life.exeの0x011d155dで未処理の例外が発生しました:0xC0000005: 0xfdfdfdfdという場所にアクセス違反を作成しています。ここでテキストファイルの内容を2 * 2の配列に読み込むのが難しい
はコードです:ここでは
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]){
if(argc <= 1) printf("Program needs two arguments: input file and output file!");
FILE* f;
f = fopen(argv[1],"r");
if(f == NULL) printf("File cannot be opened!\n");
/* Determining how many lines and length of string */
int m = 0;
int n = 0;
char c;
while((c = fgetc(f))!=EOF) {
if(c == '\n') {n++;}
else m++;
}
m /= n; // counting quantity of chars in one line
/* here i'm allocating memory for array (am i right?) */
char** field = (char**)malloc(n*sizeof(char*));
for(int i = 0; i < n; i++) {
*(field + i) = (char*)malloc(m*sizeof(char));
}
int i = 0, j = 0;
for(i = 0; i <= n; i++){
for(j = 0; j <= m; j++){
*(*(field + i)+ j) = fgetc(f); // Here i get an error
}
}
fclose(f);
}
は(私も空白を読む必要がある)ファイルのCONTENSです:私は間違っ
*************
* ## *
* *
* # *
*************
何をしていますポンターを使ってそれを読む?
ありがとうございます。
ループの前にファイルの先頭に戻る必要があるのですか?そしてどうしたらいい?そして、ありがとう - 私は変更された他のすべてのもの。 –
@DimaReshetnikov 'fseek'または' rewind'を見てください。 – cnicutar
位置をファイルの先頭に設定するにはfseek()関数が必要ですか? –