我正在处理一些遗留的C/C++代码,其中内存是使用
malloc
和new
进行分配的。我想创建一个通用的包装函数,可以根据内存分配方式使用free
或delete []
来释放内存。
有没有一种方法可以确定内存是如何分配的?以下是伪代码:
double *x;
double *y;
x = (double *) malloc(size);
y = new double [size]
doSomething();
deallocateMemory(x, y);
我希望deallocateMemory
能够确定是调用free
还是delete []
。任何帮助将不胜感激。
std::unique_ptr
。 - Mankarsemalloc()
实现,我所能想到的是使用C++接口API将所有遗留API封装起来,以跟踪正在发生的事情以及来自哪里的内容。我将其发布为评论,因为在不了解有关遗留API的更多详细信息之前,适当的答案将变得非常广泛。 - πάντα ῥεῖ