7得票5回答
使用[]运算符动态分配数组,而不是使用malloc函数?

我相信这个问题已经被问了无数次,但我找不到一个解释清楚的答案。有人告诉我永远不要做这样的事情,但我没有真正理解为什么。为什么像这样的操作不算是动态分配内存,又为什么这么糟糕呢? int a; scanf("%d",&a); int arr[a];

14得票9回答
使用operator new/malloc分配的内存块能否在程序执行结束后继续存在?

可能是重复问题: 当您退出C程序时,malloc分配的内存是否会自动释放? 当我了解到在C/C++中进行动态内存分配时,使用delete/free是强制性的时,这个问题就浮现在我的脑海中。我想,如果内存分配超出了程序执行的终止,则必须进行释放;否则,为什么要担心释放已分配的空间呢...

15得票6回答
堆内存分配

如果我在程序中使用malloc()动态分配内存,但在程序运行期间没有释放内存,那么动态分配的内存将会在程序终止后被释放吗? 如果没有释放,然后我一遍又一遍地执行同一个程序,它会每次都分配不同的内存块吗?如果是这样的话,我该如何释放那些内存? 注:我能想到的一个答案是重新启动正在执行该程序的...

22得票4回答
指针数组的动态内存分配

我正在尝试编写一个程序,从文本文件中读取一系列字符串,并将它们存储在一个动态分配内存的字符串数组中。我的计划是使用指针将每个字符串存储在数组中,然后随着读入更多字符串来增加数组的大小。但我不明白为什么下面的测试代码无法正常工作。这个想法可行吗?char *aPtr; aPtr =(char*)...

58得票5回答
为什么这个程序会出现内存泄漏,如何在使用malloc和free来处理包含std :: string对象的情况下解决它?

这是一个最小化的工作示例,用于展示我在实际代码中遇到的问题。 #include <iostream> namespace Test1 { static const std::string MSG1="Something really big message"; } s...

7得票2回答
小对象分配器

有人在大型项目中使用过Andrei Alexandrescu的《现代C++设计》中的SmallObjectAllocator吗?我想要实现这个分配器,但在我的项目中使用它之前,我需要一些意见。我进行了一些测试,看起来非常快,但这些测试是在小型测试环境中进行的。我想知道当有大量小对象(例如事件、...

7得票3回答
在编译时捕获std::function的分配情况

我希望在我的代码库中只允许使用std::function,如果它不进行任何分配。为了达到这个目的,我可以编写下面的函数,并仅使用它来创建我的函数实例: template< typename Functor> std::function<Functor> makeFun...

20得票8回答
使用std::vector会带来什么额外的开销?

我知道通常情况下手动动态内存分配不是一个好主意,但是在某些情况下,它是否比使用例如std::vector更好的解决方案呢? 举个简单的例子,如果我需要存储一个n整数数组,其中n int* data = new int[n]; //assuming n is set beforehand 或者...

16得票1回答
_int_malloc和malloc(在Valgrind中)有什么区别?

我很惊讶地发现找不到任何文件说明Valgrind的callgrind工具输出中_int_malloc和malloc的区别。 有人能解释一下它们的区别吗? 此外,我实际上编写的是C++代码,因此我专门使用new而不是malloc,但在callgrind输出中只显示了malloc。

13得票1回答
可分配数组还是指针数组?

我正在编写一段Fortran代码,犹豫是否使用可分配数组或指针数组。我在某个地方读到,可分配数组比指针数组具有显着优势: 1)更有效率,因为它们始终在内存中是连续的 2)不可能出现内存泄漏 有人能否确认这一点?你会建议使用哪一个?在这两种选择之间,执行代码的执行速度结果如何?