如果我有一个本地C++功能,根据函数的结果,删除某个指针(删除[])的责任在调用方和函数之间不同。当然,我会检查返回值并相应地在C++中执行。
不,只需将本机代码中分配的指针设置为 null 不会释放内存。CLR只能垃圾收集它知道的内存(又称托管内存)。它不知道本机内存,因此无法收集它。必须显式释放在托管类型中拥有所有权的任何本机内存。
null
最常见的方法是通过 Marshal 班
Marshal
不,C++不能做C++中删除[]的操作。您必须使用共享内存分配API,或者编写处理清理的C++包装器。