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

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

  1. numbers - это указатель на массив из 6 целых чисел, выделенных динамически.
  2. Если память не может быть выделена, программа выводит сообщение об ошибке memory error! и возвращает 1.

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


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

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

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