Крашит программу примерно при вызове функции 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.