我已经管理了.net C ++ dll,这是一个执行以下操作的函数:
unsigned char* mBytes = new unsigned char[hSize];
如何在返回前释放此mBytes?
答案 0 :(得分:13)
new[]
- delete[]
应该被称为new
- delete
应该被称为malloc()
- free()
应该被称为ref new
/ gcnew
- 自动释放内存在这种情况下,您使用new[]
进行分配,因此您应该通过调用来解除分配此内存:
delete[] mBytes;
答案 1 :(得分:3)
只需使用delete[]
运算符。
delete[] mBytes;
应该做的工作。
delete
用于处理new
通过托管c ++可以通过关键字__gc
指定要通过垃圾收集器收集的类。例如。类定义:
__gc class gc {
int* i;
char* g;
float* j;
};
见MSDN:)