delete-operator 相关问题

在C ++编程语言中,delete运算符调用给定参数的析构函数,并将new分配的内存返回给堆。

在C ++中的自定义运算符中的Delete vs Delete [](与常见的Delete vs Delete []问题不同)

我定义了一个名为MyNewDeleteAllocator的类,并为该类定义了自定义的new和delete运算符。这段代码没有任何错误,可以正常工作。但是,我对第...

回答 1 投票 -1

Qt5-如何将`QList *`指针作为信号参数传递,并在完成后将其删除?

我想将QList作为Qt5中的信号参数传递。下面的代码提出了这个想法,但是问题在于QList对象应该在信号发送给所有对象之后删除。]]

回答 1 投票 0

c ++如何释放内存

我有以下问题:我使用一个称为Node的类创建了一个表示二进制搜索树的数据结构。每个节点通过指向左子节点和右子节点的指针连接。将......>

回答 1 投票 -2

复制后删除原始数组指针,将前3个字节设置为0

下面的程序在缓冲区大小达到135之前起作用。如果缓冲区变大,则前3.5个字节打印为0。(在MKR1000 arduino上)uint8_t * bufferOut; size_t ...

回答 1 投票 -1

在C ++中释放指针两次或更多次会发生什么?

int main(){Employee * e = new Employee();删除e;删除e; ...删除e;返回0; }

回答 7 投票 23

在这两种情况下会导致内存泄漏

使用delete:int ** a = new int *; ** a = 5;删除使用delete []:int ** a = new int *; ** a = 5; delete [] a;为了找出答案,我尝试这样做-int ** a = new int *; ** a = 5; int * b =新int; b = *(a); delete [] a; ...

回答 2 投票 0

无法找到内存泄漏的地方

嗨,我目前正在我的第一个面向对象的c ++项目中工作,当我使用valgrind检查内存泄漏时,它的输出:1个块中的32(24个直接,8个间接)字节肯定在...中丢失了]]] >>

回答 1 投票 1

为什么删除温度会崩溃,即使该函数是用new定义的

我正在制作一个修改后的双链表,但是头和尾指向彼此。在insertBeforeCurrent和insertAfterCurrent中,我用new定义了对象,然后将它们放入...

回答 1 投票 -2

C ++中的删除操作

我不明白删除的含义。例如,在下面的代码中,删除ptr;因此指针变量ptr被删除还是指向的内存ptr被删除? int * ptr =新的int; * ptr = 7; ...

回答 1 投票 3

删除动态分配的数组与单个指针

因此,我正在尝试实现唯一的指针,我希望能够在分配单个对象和分配数组之间进行选择。假设我是否使用new []分配了所有内容,即使是单个...

回答 1 投票 1

清除链表节点类C ++中的函数

我无法确保已为链接列表Node类创建了一个清晰的函数。我正在使用delete我知道会导致内存问题的方法,但这是我可以的唯一方法...

回答 1 投票 0

取消全局替换操作符new返回的指针的未分配行为,而不调用替换操作符delete吗? (C ++ 17)

被认为是未定义的行为,它会在SL操作符new未返回的非null指针上调用SL操作符删除,如此处针对(1)和(2)所述:https://en.cppreference.com/ w / ...

回答 2 投票 1

不是[delete []`与`new []`对应吗?

为了阅读有关工厂模式的在线信息,我正在阅读将近20年的C ++知识。最终使用上下文可能会在不同的第三代中...

回答 1 投票 0

编译器错误C2541-'delete':delete:无法删除不是指针的对象

我写了此类:class StaticList {private:int headFree; int headList; int locNew; StaticListNode * listNodeArr;公共:StaticList(int numberOfElements); 〜...

回答 1 投票 0

C ++动态内存分配,在第二次第二次崩溃前使用删除

我正在构建一个程序来创建动态数:char **。 C ++中的删除功能对我来说是新功能,所以也许我正在做一些基本错误,但我在互联网上找不到答案。代码...

回答 1 投票 0

为什么运算符删除重载不会在调用删除时调用无限递归调用

调用操作符new的本地重载会由于无限递归调用而导致堆栈溢出,但是当操作符delete的本地重载发生相同情况时,为什么要调用全局操作符delete(因此...

回答 1 投票 2

我如何在C ++中删除指向数组的指针

我想知道如果要删除这样初始化的数组,该如何使用delete运算符:int(* my_ptr)[10] = new int [3] [10];这似乎无效:delete [] []

回答 3 投票 0

删除模板数组时出现分段错误

因此,我需要创建一个包含对象对的动态大小数组,并且我有以下代码:#include #include #include 使用... ] >>>]] > 您需要使用运算符删除[] delete [] array; 当使用new分配对象时,需要使用delete释放它们。用new[]分配对象时,需要用delete[]释放它们。将您的代码更改为: delete[] array; 删除动态数组时,使用delete []而不是delete删除多个动态分配的数据。希望这能解决您的问题。

回答 3 投票 0

C ++操作员可以删除失败,如果不是,为什么?

操作员删除是否可以在内存解除分配期间引发异常或发出其他错误消息?以其他方式,操作员删除可能失败,并且...

回答 2 投票 2

什么是“ :: operator new”和“ :: operator delete”?

我知道new和delete是关键字。 int obj =新的int;删除obj; int * arr =新的int [1024]; delete [] arr; 标头是C ++标准标头的一部分。它有两个运算符(我不确定...

回答 4 投票 2

© www.soinside.com 2019 - 2024. All rights reserved.