Вопросы с тегом 'delete-operator'

На языке программирования С++ оператор delete вызывает деструктор данного аргумента и возвращает память, выделенную новой, обратно в кучу.
3 отв.

Деструктор не удаляет выделенную память

У меня есть класс, который включает в себя указатель std :: uint_8, и деструктор должен вызываться для удаления выделенной памяти. Проблема, с которой я сталкиваюсь, заключается в том, что возникает ошибка complier и указывается, что память не была ...
16 февр. '17 в 22:50
1 отв.

С++ Pointer после удаления, а затем дать значение

Я сталкиваюсь с этой проблемой, он создает 3 блока памяти, я путаюсь, если удалить * r, это ** r все еще существует или нет? должен ли я перемещать ** r в положение * r? мне нужно другое выражение "new int", чтобы дать значение? int t = 5; int **r; ...
10 сент. '17 в 22:30
1 отв.

С++ Нарушение доступа при удалении массива> 130046 элементов?

У меня очень странная проблема. Ниже приводится наименьший бит кода, который воспроизводит его. int main(void) { class MyClass { public: int* ptr; MyClass(int i) { std::cout << "Constructor" << std::endl; pt...
04 мая '17 в 3:23
4 отв.

Почему можно удалить неинициализированный указатель в деструкторе, а не в главном?

пожалуйста, проверьте деструктор функции foo ниже. Если я удаляю указатель p, то он работает нормально. Но если я делаю то же самое в основной программе, я получаю ошибку. Почему это позволяет мне делать это в деструкторе? PS Я знаю, что нет смысла...
19 дек. '18 в 22:46
1 отв.

Перегрузка Opertor new?

Ques1. Может ли кто-нибудь сказать мне результат следующей программы и как ее работа? #include <iostream> #include <malloc.h> #include <vector> using namespace std; class Base { public: void* operator new(size_t size) { void ...
18 янв. '16 в 7:59
2 отв.

Удалить указатель с указателем на этот указатель

Хорошо подумайте: int * hello = new int[10]; for (register int i = 0; i < 10; i++) *(hello + i) = i; int * & hello_ref = hello; delete[] hello_ref ; for (register int i = 0; i < 10; i++) cout << *(hello + i) << std:...
14 марта '16 в 16:07
2 отв.

каков результат работы программы

#include<iostream> using namespace std; int main() { int *arr ; arr = new int[10]; for(int i=0;i<10;i++) arr[i] = i; delete arr; for(int i=1 ; i<10;i++) cout<<arr[i]; } Я ожидал ответа "123456789", но о...
20 дек. '16 в 19:28
2 отв.

Когда объект фактически уничтожается в C++? Что делает delete (ptr) Do?

Программа без delete работает отлично. Однако при использовании delete я не получаю никакого результата. Программа прерывается. #include<iostream> using namespace std; class Book { string *title; int *price,*stock; public: Book() { ...
26 окт. '17 в 21:53
1 отв.

С++ delete [] не работает только в версии выпуска

Я переживаю странное поведение. У меня ниже фрагмента кода, который сбой (только в режиме деблокирования) во время вызова для удаления инструкции [] pOutputStr. void MyFunction() { char* pOutputStr = new char[100]; //my other code which is nowher...
20 февр. '18 в 13:44
4 отв.

Не удается удалить массив/вектор в C++?

У меня проблемы с удалением массива int calc_mode (vector<int> array, int arrSize) { int ipRepetition = new int[arrSize]; int j; bool bFound; for(int i =0; i<arrSize; i++) { ipRepetition [i] = 0; j=0; bFound = false; ...
02 сент. '12 в 23:30
1 отв.

Какая разница между новыми и новыми [] в C++?

Я пытаюсь выяснить механизм распределения памяти C++. Я понимаю разницу между operator new() и new выражением. Но, как я нашел здесь, прототипы operator new() и operator new[]() почти идентичны, а реализации по умолчанию operator new[]() должны про...
22 дек. '17 в 8:05
1 отв.

Удаление объектов в c++;

В C вы должны освободить память, выделенную программой. То же самое касается объектов в C++? class Common { //some function declarations } void example() { Common obj; //do stuff with obj delete obj; } Насколько важно удалить ob...
08 окт. '14 в 23:02
4 отв.

Проблемы с char * и удаление

У меня возникают серьезные проблемы, пытаясь де-выделить этот указатель. У меня такая ошибка: ошибка для объекта 0x10007fd20: освобожден указатель не был выделен У меня есть следующая структура: char * doSomething() //I cannot change this method...
16 июня '14 в 17:02
3 отв.

Удалить [] c++ не работает

void show(int* x){ printf("%d",x[3]); } int main(){ int* ptr; ptr = new int[9](); delete [] ptr; printf("%d %d\n", ptr[7], *(ptr+7)); show(ptr); return 0; }
05 дек. '12 в 9:48
3 отв.

Почему в этом фрагменте кода содержится ошибка?

Я знаю нормально, * и & знаки. Но наш учитель дает нам пример, и она сказала: "Проблема возникает здесь" int *a1; int *a2 = new int[100]; a1=a2 //What does this line mean??? delete []a2; k=a1[0]//she said error occurs here. Я не мог понять, ч...
25 мая '16 в 20:19