Не могу освободить память с функцией free - C (СИ)

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

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

int     *get_vector(t_graph *begin, int **mat_adc, int n, int end)
{
    int     i;
    int     j;
    int     *v0;
    int     *vk;
    int     *vec_ptr;
 
    v0 = (int*)malloc(sizeof(int) * n);
    vk = (int*)malloc(sizeof(int) * n);
    if (!vk || !v0)
    {
        ft_error("Malloc error!\n");
        return (NULL);
    }
    for (i = 0; i < n; i++)
        v0[i] = mat_adc[i][end];
    v0[n] = 0;
    do
    {
        for (i = 0; i < n; i++)
        {
            vk[i] = v0[i];
            for (j = 0; j < n; j++)
                vk[i] = ft_min(vk[i], mat_adc[i][j] + v0[j]);
        }
        vk[end] = 0;
        vec_ptr = vk;
        vk = v0;
        v0 = vec_ptr;
    }
    while (veccmp(v0, vk, n));
    printf("Show vec started\n");
    show_vec(vk, n);
    printf("Show vec finished\n");
    free(vk);
    printf("vk freed\n!");
    return (v0);
}
В данной функции вызываются и другие, но они не меняют ни указатель ни содержимое массива. После надписи Show vec finished программа прекращает работать.

Решение задачи: «Не могу освободить память с функцией free»

textual
Листинг программы
v0[n] = 0;

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


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

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

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