Вопросы по теме 'delete-operator'
C ++ Начинающий Удалить код
Я пытаюсь динамически выделить память в куче, а затем удалить выделенную память. Ниже приведен код, который доставляет мне трудности:
// String.cpp
#include "String.h"
String::String() {}
String::String(char* source)
{
this->Size =...
481 просмотров
schedule
07.09.2021
Удалит ли [] с помощью void * вызовет утечку памяти?
Возможный дубликат: Насколько это безопасно? удалить недействительный указатель?
Будет ли следующий код вызывать утечку памяти?
void *ptr = new long [10];
delete[] ptr; // note: ptr is a void*
[РЕДАКТИРОВАТЬ] Приведенный выше...
861 просмотров
schedule
08.10.2021
Почему мое приложение вылетает при удалении?
while(!m_RemoveNodeList.empty())
{
list<CNode *>::const_iterator const it = m_RemoveNodeList.begin();
CNode * const pNode = *it;
ASSERT(pNode != NULL);
m_NodeList.remove( pNode );
delete pNode; // crashing here...
968 просмотров
schedule
22.11.2021
Утечка памяти деструктора C ++
Относительно простой вопрос о правильной обработке деструкторов ...
Сначала у меня есть класс, который выглядит примерно так:
class Foo {
public:
ReleaseObjects() {
for (std::map<size_t, Object*>::iterator iter =...
3343 просмотров
schedule
28.10.2021
Программа вылетает при удалении массива указателей в структуре
Вылетает при появлении команды удаления. Предполагается создать структуру с указателями на массивы, заполнить их случайными числами, а затем освободить память. Работает нормально до тех пор, пока не будет выполнена команда удаления, в которой...
1022 просмотров
schedule
03.11.2021
Удаленный выделенный элемент в куче оценивается как истина
struct Set
{
int a;
Set() : a(30){};
bool operator>( const Set& ref ) const
{
return ref.a > this->a;
};
};
int _tmain(int argc, _TCHAR* argv[])
{
vector<Set>m_set;
m_set.push_back( (*(new...
69 просмотров
schedule
13.11.2021
перегрузить оператор delete [] с определенными аргументами
Мы пытаемся перегрузить оператор delete [] конкретными аргументами. Как правильно это называть? Мы используем компилятор GNU и получаем ошибки компилятора со всеми этими примерами:
#include<memory>
using namespace std;
typedef unsigned int...
2495 просмотров
schedule
08.10.2021
Преобразование оператора void * () по-прежнему является частью библиотеки C ++?
Рассмотрим эту программу:
#include <iostream>
int main()
{
delete std::cout;
}
AFAIK функция преобразования operator void * () const была удалена из С ++ 11. Таким образом, эта программа должна потерпеть неудачу при компиляции на...
159 просмотров
schedule
05.11.2021
Сбой деструктора при удалении массива указателей в C ++
Я создал класс с именем cell . Внутри этого класса есть массив cell указателей. Заголовок выглядит так:
class cell
{
public:
cell();
cell *c[8];
void creatcells();
virtual ~cell();
..
}
и файл cpp выглядит так:...
569 просмотров
schedule
13.09.2021
Деструктор вызвал std :: vector ‹Тип класса› недействительный for_each
Я читал о delete[] , new[] , что-есть-правило- из трех , освобождение-объекты-хранимые-в-векторе , delete-vector-class-member и обнаружив
Возникло исключение: нарушение прав доступа для чтения.
Я определил базовый класс
class...
56 просмотров
schedule
05.09.2021
Как понять, что в C ++ удален указатель
Когда я пишу такой код, он печатает «не удалено». Как я могу на 100% убедиться, удален указатель или нет?
int* a = new int;
*a = 5;
delete a;
if (!a) //I also tried a == NULL but got same result...
3950 просмотров
schedule
06.02.2022
Установка ограничений на перегрузку new и delete
Можно ли наложить ограничения на операторы перегрузки new и delete? Мой перегруженный новый файл связан с моей тестовой программой в другом файле.
Сценарий такой:
if(condition is satisfied)
call overloaded new
else
call the actual new...
281 просмотров
schedule
22.02.2022
Удалить указатель в С++ меня смутил
**struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* Merge(ListNode* list1, ListNode* list2){//list1 2; list2 4
ListNode* result = new ListNode(0);
ListNode* travel =...
140 просмотров
schedule
19.02.2022
C++, удалить [] foo и удалить foo
Я просто еще не могу привыкнуть к синтаксису C++.. любое интуитивно понятное объяснение
//delete [] foo
// and
//delete foo[]
был бы очень признателен. если быть более точным, скажем, у меня есть
int** foo = new int*[50]
for (int index =...
125 просмотров
schedule
05.03.2022
Как удалить символ * в C ++
Каждый раз, когда я выполняю это ... я получаю сообщение об ошибке:
char * var= new char[256];
var= "hola mundo\0";
delete var;
я получаю ошибку:
malloc: *** ошибка для объекта 0x10007fd20: освобождаемый указатель не был выделен ***...
3232 просмотров
schedule
15.03.2022
Как удалить указатель после приведения к void* и обратно
В рамках класса «сообщение» я пытаюсь передавать указатели разных типов, приводя их к указателям типа void* и сохраняя их в классе-оболочке («MsgData»), который запоминает исходный тип указателя.
Например, логический указатель:
bool* data = new...
312 просмотров
schedule
14.03.2022
Поскольку оператор удаления освобождает память, зачем мне деструктор?
Из часто задаваемых вопросов по С++: http://www.parashift.com/c++-faq-lite/dtors.html#faq-11.9
Помните: delete p делает две вещи: вызывает деструктор и освобождает память.
Если delete освобождает память, то зачем тут деструктор?
3448 просмотров
schedule
20.03.2022
оператор new() ведет себя по-разному при удалении оператора delete() в зависимости от наличия конструктора по умолчанию
Создание нового объекта класса C с оператором new() дает здесь ошибку:
class C
{
public:
C() {}
virtual ~C() {}
void operator delete(void*) = delete;
};
int main()
{
C* c = new C;
}
с C2280: 'void C::operator delete(void...
339 просмотров
schedule
20.03.2022
Почему удаление массива символов вызывает сбой после присвоения значения оператором =?
Это мой код. Я создаю массив символов и назначаю ему строковый литерал оператором =. После чего я освобождаю его, удаляя. Однако это вызывает сегментацию. Но он отлично работает с strcpy. Кроме того, всегда ли массив символов назначается strcpy?...
51 просмотров
schedule
20.03.2022
C ++ путаница с оператором delete []
Изучаю указатели банкомата. и я запутался с оператором delete []. Вот пример:
int* a = new int[12];
for (int i=0; i<12; i++)
a[i]=123;
delete[] a;
for (int i=0; i<12; i++)
cout <<a[i]<<" ";
Если я понял правильно,...
71 просмотров
schedule
31.03.2022