new-operator相关内容

多线程能加速内存分配吗?

我使用一个8核处理器,我使用Boost线程来运行一个大程序。 逻辑上,程序可以分成组,每个组由一个线程运行。 在每个组内,一些类总共调用“new”运算符10000次。 Rational Quantify显示,当程序运行时,“新”内存分配占用了最大处理时间,并且减慢了整个程序的运行速度。 方式我可以加快系统可以使用每个'组'内的线程,以便10000内存分配可以并行发生。 我不清楚如 ..

new,delete,malloc&自由

这个问题在面试中向我问过: 在C ++中, 如果我们使用 malloc 分配内存并使用 delete 内存? 如果我们使用 new 分配内存, c> 如果在代码中使用上述内容,我们会遇到什么问题? 我的答案是没有区别。 解决方案 如果你这样做,你会遇到未定义的行为。永远不要试试。虽然 new 可能通过 malloc()和 delete 可以通过 free()实现, ..
发布时间:2016-10-13 11:18:50 C/C++开发

在调用free()或delete而不是delete []时有什么危险吗?

可能重复: (POD)释放内存:delete []等于删除? delete 是否可以解除数组中第一个元素之外的元素? char * s = new char [n]; delete s; 在上述情况下,看到 s 是连续分配的,并且不应该 delete 只有数组的一部分? 对于更复杂的类型, delete 调用超出第一个对象的析构函数? ..
发布时间:2016-10-13 10:43:42 C/C++开发

重载新/删除

我在我的程序中创建一个小的内存泄漏查找程序,但 我的方式重载新和删除(以及新的[]和删除[]) 似乎没有做任何事情。 void * operator new(unsigned int size,const char * filename,int line) { void * ptr = new void [size]; memleakfinder.AddTrack(ptr,si ..
发布时间:2016-10-13 10:23:20 C/C++开发

放置新和删除

什么是正确的方法来删除这里分配的所有内存? const char * charString =“Hello,World” ; void * mem = :: operator new(sizeof(Buffer)+ strlen(charString)+ 1); Buffer * buf = new(mem)Buffer(strlen(charString)); delet ..
发布时间:2016-10-11 22:29:09 C/C++开发

创建对象:带或不带`new`

可能重复: $使用新对象和不使用实例化对象之间的区别是什么? b $ b 这可能是一个基本问题,可能已经被问过(例如,这里);但我还是不明白。 考虑下面的C ++类: class Obj { char * str; public: Obj(char * s){ str = s; cout ..
发布时间:2016-10-11 22:23:30 C/C++开发

如何用C ++中的新操作符初始化内存?

我刚刚开始进入C ++,我想学习一些好的习惯。如果我刚刚为 new 运算符分配了 int 类型的数组,那么如何将它们全部初始化为0循环通过他们自己?我应该使用 memset 吗?是否有“C ++” 解决方案 这是一个令人惊讶的C ++的一个鲜为人知的特性(证据表明,没有人给定这是一个答案),但它实际上具有特殊的语法默认初始化数组(好吧,技术上,它被称为“价值初始化”在标准): ne ..
发布时间:2016-10-11 22:07:11 C/C++开发

你怎么在C ++中的`realloc`?

如何在C ++中 realloc ?它似乎缺少从语言 - 有新和删除但不是 resize ! 我需要它,因为我的程序读取更多的数据,我需要重新分配缓冲区来保存它。我不认为删除旧的指针和新新的,更大的,是正确的选择。 解决方案 使用:: std :: vector! Type * t =(Type *)malloc(sizeof(Type)* n) memset(t,0,si ..
发布时间:2016-10-11 21:48:30 C/C++开发

为什么要替换默认的新操作符和删除操作符?

为什么应该会替换默认操作符 new 和 delete $ b $ b 这是重载新的和删除的延续非常有趣的C ++常见问题: 操作员重载。 此常见问题的后续条目是: 新和 delete code>运算符? 注意:答案是基于Scott Meyers的“更有效的C ++” br> (注意:这意味着要输入 Stack Overflow的C ++常见问题 。如果您想批评在此表单 ..

何时使用“新的”和什么时候不到,在C ++?

可能重复: 什么时候在C ++中使用new关键字? $ b b 我应该在C ++中使用“new”操作符?我来自C#/ Java背景和实例化对象对我很困惑。 如果我创建了一个简单的类“Point”,当我创建一个点应该: 点p1 = Point(0,0); 或 Point * p1 = new Point(0,0); 有人可以 ..
发布时间:2016-10-11 21:26:37 C/C++开发

在任何情况下,新的返回NULL?

我知道根据C ++标准,如果新的失败分配内存,它应该抛出std :: bad_alloc异常。但我听说有些编译器如VC6(或CRT实现?)不坚持它。这是真的 ?我问这是因为检查NULL后,每一个新的语句使代码看起来很丑陋。 解决方案 VC6在这方面默认不合规。 VC6的 new 返回 0 (或 NULL )。 p> 这是Microsoft的知识库文章以及他们建议的解决方法,使用自定义 ..
发布时间:2016-10-11 21:24:19 C/C++开发

使用new和without实例化对象之间的区别

在C ++中, 除了动态内存分配之外,以下两行代码之间存在功能差异: 时间t(12,0,0); // t是一个时间对象 时间* t = new Time(12,0,0); // t是指向动态分配的Time对象的指针 我假设已经定义了一个Time(int,int,int)ctor。我也意识到,在第二种情况下,t将需要被删除,因为它是在堆上分配。是否有其他差异? ..
发布时间:2016-10-11 20:44:21 C/C++开发

我应该如何编写ISO C ++标准一致的自定义新的和删除操作符?

如何编写ISO C ++标准一致的自定义新和 delete 运算符? 这是重载新增和删除的延续照亮C ++常见问题解答,操作符重载及其后续操作 b 第1节:编写符合标准的新运算符 第1部分:了解编写自定义新运算子 第2部分:了解 new_handler 需求 第3部分:了解具体的场景需求 第2节:编写符合标准的 delete 运算符 / 7195226“>实施自 ..