Я столкнулся с некоторыми трудностями при чтении символов из текстового файла в двумерный динамический массив - он завершается с ошибкой «Необработанное исключение в 0x011d155d в Problem_03_life.exe: 0xC0000005: Место записи нарушения доступа 0xfdfdfdfd.»
Вот код:
#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);
}
Вот содержимое файла (мне тоже нужно прочитать пробелы):
*************
* ## *
* *
* # *
*************
Что такоея делаю неправильно, используя ponters, чтобы прочитать это?
Спасибо.