我正在处理一些遗留的C/C++代码,其中内存分配使用malloc
以及使用new
。我想创建一个通用包装函数来取消分配内存使用free
或delete []
,取决于它如何分配。如何检查内存是否使用malloc或新分配
有没有办法确定如何分配内存?这是一个伪代码。
double *x;
double *y;
x = (double *) malloc(size);
y = new double [size]
doSomething();
deallocateMemory(x, y);
我想deallocateMemory
以确定是否调用free
或delete []
。任何帮助,将不胜感激。
据我所知,你不能这样做。 –
http://stackoverflow.com/questions/9702292/overriding-malloc-to-log-allocation-size –
你应该在类型系统中使用'std :: unique_ptr'和适当的删除器对它进行编码。 – Mankarse