如何“删除”一个函数返回的 char * 变量?

bel*_*ian 4 c++

函数原型:

char * get_something();
Run Code Online (Sandbox Code Playgroud)

现在我们需要释放“get_something”函数分配的内存。

删除还是删除[]?

我们没有关于函数实现的信息——字符数组或单个字符

Bat*_*eba 11

你不能说。

函数的作者应该更清楚地知道不要像这样返回一个指向已分配内存的指针。

即使您确实发现了(也许是通过查阅文档?),您也必须确保您的代码以与该函数完全相同的方式编译。如果您的delete运行时与它们的new运行时不同,那么欢乐地狱将接踵而至。

最好的办法是让库供应商为您提供一个release_something(char*)为您清除内存的功能。