c# - C# 和 C++ 之间的编码,以及责任的杂耍

标签 c# .net c++ pointers memory-management

如果我有一个 native C++ 函数,根据函数的结果,删除某个指针 (delete[]) 的责任在调用者和函数之间是不同的。我当然会检查返回值并在 C++ 中进行相应操作。

问题是,如果函数在 C++ 和 C# 之间编码,在 C# 中将指针设置为 null 就足够了吗?

最佳答案

没有。 C# 不能做 C++ 中的 delete[] 能做的事情。您必须使用共享内存分配 API,或编写处理清理的 C++ 包装器。

关于c# - C# 和 C++ 之间的编码,以及责任的杂耍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628040/

相关文章:

.net - 每次进行更改时回收应用程序池

.net - 当我定义了隐式强制转换时,为什么Linq Cast <T>操作失败?

C++ 堆内存性能改进

c++ - 在 Eclipse 中使用 Botan 库

c# - 获取项目中引用的所有程序集中的所有接口(interface)类型

c# - 手机游戏全局记分牌

c# - body onLoad 不动态调用 make javascript 函数

c# - 开发像 Windows 10 Setting App 这样的 WPF App

c# - 使用用户凭据获取 Web API 的 token

c++ - 用许多 block 实现的 vector ,没有调整大小的拷贝