9349得票31回答
栈和堆是什么?它们分别位于哪里?

栈和堆是什么? 它们在计算机内存中的物理位置在哪里? 它们在多大程度上受操作系统或语言运行时的控制? 它们的作用范围是什么? 是什么决定它们的大小? 是什么使它们更快?

118得票7回答
静态内存分配和动态内存分配的区别

我想了解静态内存分配和动态内存分配之间的区别是什么?您能用示例来解释一下吗?

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

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

96得票6回答
何时以及为什么要使用malloc

嗯,我不明白何时以及为什么需要使用malloc来分配内存。 这是我的代码:#include <stdlib.h> int main(int argc, const char *argv[]) { typedef struct { char *name; ch...

72得票4回答
C++11中推荐的内存对齐方式是什么?

我正在开发一个单生产者单消费者环形缓冲区实现。我有两个要求: 将单个堆分配的环形缓冲区实例对齐到缓存行。 将环形缓冲区内的字段对齐到缓存行(以防止伪共享)。 我的类大致如下: #define CACHE_LINE_SIZE 64 // To be used later. temp...

70得票7回答
C++中的'new'和'delete'是否已经被弃用?

我偶然发现了一个涉及不同大小的数组声明的测验。我想到的第一件事是,我需要使用new命令进行动态分配,就像这样:while(T--) { int N; cin >> N; int *array = new int[N]; // Do something wit...

62得票4回答
C++14中的new和delete仍然有用吗?

除了支持旧代码外,在C++14中何时使用new和delete?鉴于现在可以使用make_unique和make_shared,以及由unique_ptr和shared_ptr析构函数自动删除内存的能力。

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

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

49得票5回答
当一个对象超出其作用域时,析构函数会被调用吗?

例如:int main() { Foo *leedle = new Foo(); return 0; } class Foo { private: somePointer* bar; public: Foo(); ~Foo(); }; Foo::...

46得票5回答
不使用指针的C++多态性

假设我有一个基类Animal,其中包含虚函数和一些派生类(如Cat、Dog等)。实际的派生类包含4-8个字节的数据。我想存储一个std::list,其中实际上包含的是派生对象。我希望避免使用new在堆上创建许多小对象。 有没有设计模式可用于实现这一点? 我的实现想法是:创建std::deq...