Ошибки в программе - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
int main()
{
int a, b;
a = 5;
b = (int*)malloc(i * sizeof(int));
FILE *fa;
fa = fopen("filename", "r");
fclose("filename");
for (b = 0; b<a; b++)
  {
  printf("+1"); 
  }
char c[b];
fread(c, 1, ib, fa);
getch();
 
//Операции с массивом
 
int z;
FILE *aaaf;
fwrite(aaaf, 1, z, c); // z - размер массива (соответсттвенно длинны очередной дописываемой строчки)
aaaf = fopen("filename2", "a");
getch();
 
}
Программа должна: 1. Считывать количество символов. 1.1 Помещать их в массив, размер которого равный набору символов. 3. Записывать обработанные вручную данные в новый файл. 2 я написал, работает. Программа компилируется с пачкой ворнингов, запускается, сразу же крашится и... не работает. Несколько часов потратил и понял что мозг перестал воспринимать написанное. )
Во многом сам разобрался, но не во всём.
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
int a, b;
a = 20;
b = (int*)malloc(a * sizeof(int));
FILE *fa;
fa = fopen("filename", "r");
fclose(fa);
for (b = 0; b<a; b++)
  {
  printf("+1\n");   
  }
char c[b];
fread(c, 1, b, fa);
getch();
 
FILE *aaaf;
fwrite(c, 1, b, aaaf); // Программа падает
aaaf = fopen("filename2", "a");
fclose(aaaf);
getch();
}
При компиляции выдаёт предупреждение:

8 3 C:\Pure C\Project1.c [Warning] assignment makes integer from pointer without a cast

Как правильно написать? Падает с сообщением Инструкция по адресу "0x777477b2" обратилась к памяти по адресу "0x00000027". Память не может быть "written". "ОК" -- завершение приложения.

Решение задачи: «Ошибки в программе»

textual
Листинг программы
int a, *b;

Объяснение кода листинга программы

  1. Объявляется целочисленная переменная a типа int.
  2. Объявляется указатель на целочисленную переменную b типа int.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы