11得票2回答
C++中的动态零长度数组

#include <stdlib.h> void *operator new[](size_t size, int n){ if( size != 0 && n != 0 ) return calloc(n, size); retu...

25得票2回答
std::variant是否允许为其成员分配内存?

我在想,std::variant 的实现是否必须是“平坦的”,或者它是否允许为其成员动态分配内存,使得一系列变体会退化为指针序列,从而破坏缓存局部性。

15得票6回答
堆内存分配

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

13得票3回答
嵌入式系统中使用STL且内存非常有限的问题

我目前正在构建一个嵌入式系统,使用 ARM Cortex M3 处理器和 64 KB SRAM。目前,我正在寻找一种方法来确保 STL 容器的确定性能,其中包括确保在运行时不会耗尽内存。 我主要关注 STL 容器如何执行动态内存分配。虽然我可以使用自定义分配器使这些结构从我设置的池中获取内存...

7得票5回答
替代strdup的方法

我正在编写一个包含名称的C++类,用于书籍: class Book { private: char* nm; .......... ............ .......... ........... }; 在这个任务中,我不允许使用std::string。因此,在构造函数中,...

43得票7回答
为什么通过基类指针删除数组时,派生类的(虚)析构函数没有被调用?

我有一个带有虚析构函数的Animal类,以及一个派生类Cat。 #include <iostream> struct Animal { Animal() { std::cout << "Animal constructor" << std::en...

11得票7回答
动态内存分配问题

当你使用指针在堆上分配动态内存时,char *buffer_heap = new char[15]; 它将在内存中表示为: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍýýýý««««««««þþþ 为什么末尾没有空字符,而是以ýýýý««««««««þþþ作为结尾?

7得票4回答
在C语言中,数组的内存分配可以在栈上或堆上进行。

请考虑以下 C 代码: #include <stdio.h> #include <stdlib.h> int main() { int arrSize; scanf("%d", &arrSize); ...

109得票13回答
在C++中,静态数组和动态数组有什么区别?

我必须完成一个课程作业,要求不使用静态数组,只能使用动态数组。我查看了书和网上资料,但我好像还是不太明白。 我认为静态数组是在编译时创建的,而动态数组则是在运行时创建的,但我可能将此与内存分配混淆了。 你能解释一下C++中静态数组和动态数组的区别吗?

7得票3回答
无锁更新成员变量的环形分配器?

我是一个帮助翻译的助手。以下是需要翻译的内容: 我有一个类,用于存储某些实时数据的最新值(大约每秒150亿个事件)。 假设它看起来像这样: class DataState { Event latest_event; public: //pushes event ato...