c++ - 动态函数内存? C++

标签 c++ class pointers dynamic-memory-allocation

我一直在阅读一些书籍,当谈到使用指针/动态内存(或堆或他们称之为 w/e)的类/函数时,我开始感到困惑。

有没有人有一个简单的……比如他们可以展示的简单示例,因为我使用的书籍使用的示例过于复杂(大型类或多个函数)并且很难理解。无论如何,指针一直是我的弱点,但我了解 BASIC 指针,只是使用它们的类/函数有点令人困惑。

此外.....你什么时候使用它们是另一个问题。

最佳答案

堆栈分配:

char buffer[1000];

这里的 1000 必须是一个常量。当 buffer 超出范围时,内存会自动释放。

堆分配:

int bufsz = 1000;
char* buffer = new char[bufsz];
//...
delete [] buffer;

这里bufsz可以是一个变量。必须显式释放内存。

何时使用堆:

  • 您不知道编译时需要多少空间。
  • 您希望内存/对象在当前范围之外持续存在。
  • 您需要大块内存(堆栈空间比堆空间更有限)

关于c++ - 动态函数内存? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4761721/

相关文章:

ios - 附加在函数内部的数组在其他类中不起作用

c - linux/list.h 中 container_of 宏背后的基本原理

c++ - 使用额外的不可推导模板参数重载函数是否有效?

c++ - 数组上基于范围的 for 循环

c++ - 初始化变量和实例化变量有什么区别?

c++ - 地址清理器不适用于 Windows 上的 bash

java - 获取实例的声明类: possible?

ruby-on-rails - Rails 保留类名称

c - C 中的指针。 void 函数和作用域中的局部变量

比较两个空指针