Прежде всего, я НЕ прошу, чтобы кто-то сделал мою домашнюю работу для меня, просто для помощи с частью, на которой я застрял.
Во-вторых, я не эксперт по Си, поэтому, пожалуйста, прости все, что не является стандартной практикой.
В-третьих, заранее спасибо за любую помощь =)
Хорошо ...
Мне дают текстовый файл, подобный этому:
4 6
010000
011010
011010
101100
Первые две цифры - это количество строк и количество столбцов.
Я должен прочитать это в динамически размещенный 2d массив, чтобы я мог манипулировать конкретными цифрами в массиве.
Я поместил 4 и 6 в переменные без проблем, а также создал массив и правильно выделил место. Я просто не могу понять, как получить все 0 и 1 в массив. Некоторое время я безуспешно искал.
Мне также не разрешено использовать []
где-либо в моей программе, мы сосредоточены на указателях, поэтому все это должно быть сделано с помощью указателей. Тем не менее, если я смогу получить рабочее решение с пометкой []
, я смогу попытаться сделать все указатели позже, но сейчас я не могу найти какой-либо способ работать правильно.
Вот функция, которую я пишу, которая берет уже открытый файл:
void image(FILE *fp){
int row =0, col=0, i=0, j=0;
int **image;
fscanf(fp, "%d %d", &row, &col);
image = (int**) malloc(row*sizeof(int*));
for (i = 0; i < row; i++){
*(image+i) = (int*) malloc(col*sizeof(int));
for(j=0; j< col; j++){
//TRIED THIS BUT IT DOESNT WORK
fscanf(fp, "%d", &image[i][j]);
}
printf("%d\n", **(image+i));
}
}
Это один из способов, который я попробовал из нескольких других. Как я уже сказал, я хочу сначала найти способ, который использует []
, а затем попытаться преобразовать его в указатели. Я бы предпочел, чтобы кто-нибудь мог дать мне совет, потому что я немного растерялся. В любом случае, еще раз спасибо за любую помощь !!!
~ B.