Результаты поиска по запросу "delete-operator"
Почему я могу получить доступ к функциям-членам даже после удаления объекта?
Я новичок в C ++ и из того, что я узнал до сих пор, когда вы вызываете delete для указателя, который указывает на что-то, созданное в куче, тогда все, что указано этим указателем, стирается, и память освобождается, верно? Однако, когда я ...
Двойное освобождение или повреждение после очереди :: push
#include <queue> using namespace std; class Test{ int *myArray; public: Test(){ myArray = new int[10]; } ~Test(){ delete[] myArray; } }; int main(){ queue<Test> q Test t; q.push(t); }После того, как я запустил это, я получаю ошибку ...
Ну, как работает пользовательское удаление std :: unique_ptr?
Согласно N3290std::unique_ptr принимает аргумент удаления в своем конструкторе. Однако я не могу заставить его работать с Visual C ++ 10.0 или MinGW g ++ 4.4.1 в Windows, а также с g ++ 4.6.1 в Ubuntu. Поэтому я боюсь, что мое понимание этого ...
(или как там)?
аписать стандарт ISO C ++new а такжеdelete операторы?Это в продолжениеПерегрузка нового и удаление [https://stackoverflow.com/questions/4421706/operator-overloading/4421791#4421791] в чрезвычайно ярком FAQ по C ++,Перегрузка ...
delete () удалит все занимаемое пространство памяти, делая невозможным обращение к переменному после его удаления, когда в free () вы все еще можете получить к нему доступ.
ю бесплатную операцию вCэто сказать компилятору, что этот конкретный блок памяти свободен для использования компилятором для дальнейшего выделения, но память не освобождается. Как насчет удаления в C ++? так же, как бесплатно?
Новая формулировка устраняет это противоречие, явно оставляя на усмотрение реализации, вызывается ли функция освобождения в случае удаления нулевого указателя.
вольно ясно, что удаление нулевого указателя не имеет никакого эффекта. Действительно, это прямо указано вc++03 это:§5.3.5/2В любом из вариантов, если значение операнда удаления является нулевым указателем, операция не имеет никакого ...