release()没有声明C++

release()没有声明C++

问题描述:

我正在一个项目上工作 我创建了函数,我使用了动态内存,然后在函数本身中使用它来分解它。 在编译它时出错,因为release()没有声明。release()没有声明C++

int * cumprod =(int *)malloc(neighbood_dim * sizeof(* cumprod));

release(cumprod);

这是里面的函数。

这是什么原因?

您正在寻找free()不是release()

另外,由于您使用C++,你也可以使用new/delete,就像这样:

int *cumprod = new int[neighbood_dim]; 

delete[] cumprod; 
+1

感谢名单回答。两者有何区别? – Eyshika

+0

'release()'不是您可以使用的实际函数。 – frslm

+2

您的'std :: unique_ptr'示例分配一个int值为neighbood_dim的单个int,而不是包含那么多元素的数组。你可以用'std :: unique_ptr '来管理一个动态数组,但是对于那个工具来说,优越的工具是'std :: vector '。 –