动态功能记忆?C++

2 c++ pointers class dynamic-memory-allocation

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

有没有人有一个简单的......就像他们可以展示的简单例子一样,因为我使用的书籍使用的是过于复杂的例子(大类或多个函数),这使得很难遵循.指针一直是我的弱点,但我理解BASIC指针,只是使用它们的类/函数有点令人困惑.

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

Jas*_*n B 5

堆栈分配:

char buffer[1000];
Run Code Online (Sandbox Code Playgroud)

这里1000必须是常数.buffer超出范围时会自动释放内存.

堆分配:

int bufsz = 1000;
char* buffer = new char[bufsz];
//...
delete [] buffer;
Run Code Online (Sandbox Code Playgroud)

这里bufsz可以是变量.必须明确释放内存.

何时使用堆:

  • 您不知道在编译时需要多少空间.
  • 您希望内存/对象超出当前范围.
  • 你需要一大块内存(堆栈空间比堆空间更有限)