我一直在阅读一些书籍,当谈到使用指针/动态内存(或堆或他们称之为 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/