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;
感谢名单回答。两者有何区别? – Eyshika
'release()'不是您可以使用的实际函数。 – frslm
您的'std :: unique_ptr'示例分配一个int值为neighbood_dim的单个int,而不是包含那么多元素的数组。你可以用'std :: unique_ptr'来管理一个动态数组,但是对于那个工具来说,优越的工具是'std :: vector '。 –