free- все статьи тега ➜ страница 0


ошибка c++ double free или corruption (out)

Я получаю ошибку "Double free или corruption (out)" после того, как я печатаю свой вывод. Но эта ошибка возникает только для небольших входов. Для больших входных данных программа не выдает эту ошибку. Когда я создаю многомерные массивы внутри main и удаляю их, я не получаю ошибку. Я опубликовал здесь только ту часть кода, которая имеет отношение к этому вопросу. Пожалуйста, объясните, как решить эту проблему. #include<iostream> #include<vector> using namespace std; class Knapsack{ ...

Что на самом деле происходит, когда вы не освобождаетесь после Мэллока?

Это было то, что беспокоило меня уже целую вечность. мы все учили в школе (по крайней мере, мне), что вы должны освободить каждый указатель, который выделяется. Мне немного любопытно, однако, о реальной стоимости не освобождения памяти. В некоторых очевидных случаях, например, когда malloc вызывается внутри цикла или части выполнения потока, очень важно освободить, чтобы не было утечек памяти. Но рассмотрим следующие два примера: во-первых, если у меня есть код это что-то вроде этого: int ...

Установка переменной в null после освобождения

в моей компании есть правило кодирования, которое говорит, что после освобождения любой памяти сбросьте переменную в NULL. Например... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Я чувствую, что в случаях, подобных приведенному выше коду, установка значения NULL не имеет никакого значения. Или я что-то упустил? если нет смысла в таких случаях, я собираюсь взять его с "командой", чтобы удалить это правило кодирования. Пожалуй ...