Крашит программу примерно при вызове функции free() - C (СИ)
Формулировка задачи:
Всё заполняется без ошибок, как и выводит, но примерно на освобождении памяти просто крашит программу.Пробовал компилить и по дефолту, и со знаком -Wall - никаких ошибок:
#include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]) { int *numbers = (int *)malloc(6); for (int i = 0; i < 6; ++i) { printf("Enter number %d: ", i);scanf("%d", &numbers[i]); } for (int i = 0; i < 6; ++i) { printf("%d\n", numbers[i]); } free(numbers); return 0; }
Решение задачи: «Крашит программу примерно при вызове функции free()»
textual
Листинг программы
int *numbers = (int *)malloc(6 * sizeof(int)); if ( ! numbers ) { perror("memory error!\n"); return 1; }
Объяснение кода листинга программы
numbers
- это указатель на массив из 6 целых чисел, выделенных динамически.- Если память не может быть выделена, программа выводит сообщение об ошибке
memory error!
и возвращает 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д