没有'new'关键字的C ++中的内存分配

时间:2014-05-22 12:41:07

标签: c++ memory-management memory-leaks new-operator matlab-coder

我有MATLAB Coder生成的一些代码。它包括这种类型的一些变量定义:

int tmp_size[400];

在方法范围结束之前,未显式删除这些变量。

变量是在堆还是堆栈上分配的?这相当于以下几点吗?

int* tmp_size = new int[400];

最好是在内存管理方面使用new重写这些变量定义,例如int* tmp_size = new int[400];

我注意到内存是由我的程序分配的,永远不会被释放。这会导致内存泄漏吗?

1 个答案:

答案 0 :(得分:5)

这些变量的范围是“自动的”。该语言保证您的程序将在当前块的末尾释放此存储。它可能在堆栈上,但没有任何东西迫使实现使用堆栈。底线:没有泄漏。