CLI 到本机字节数组转换
CLI to native byte array translation
这是我从 CLI 到本机的转换字节数组的变体:
byte* GetNative(array<System::Byte, 1> ^ byteArray) {
try {
pin_ptr<unsigned char> array_pin = &byteArray[0];
return (byte*) array_pin;
}
catch(...) {
return 0;
}
}
我的问题是关于array_pin
.我想我需要删除它,但是如果我删除它,那么带有byte*
指针的变量将被破坏(或者至少可能被破坏)。
使用此变体安全吗?或者,我必须如何以及何时删除array_pin
?有没有更简单的方法来实现字节转换?
一旦超出
范围,array_pin
就会被取消固定,例如,当GetNative
返回时。然后,垃圾回收器可能会移动或收集基础托管数组,使返回的byte*
悬而未决,这将导致取消引用时损坏。
由于pin_ptr
不能是成员变量,并且不能将其从函数中传递回去,因此您需要在非托管数组仍在范围内时对非托管数组执行所有操作array_pin
或者将数据从固定数组复制到其他地方(例如,std::array
)。
相关文章:
- 如何在C++中将数组转换为矢量指针
- 将C++中的数组转换为字符串
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 将 int 数组转换为 std::vector<int*>
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 将字节数组转换为带有字节序问题的指针
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 将字符数组转换为时间结构
- 将字节数组转换为多维数组
- 可视化 如何在C++中将字符数组转换为 FILE 类型
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- C++如何将字符数组转换为字节向量(向量<byte>)
- 将字符数组转换为结构时出现问题. 结构的字符数组变量溢出
- 无法将字符数组转换为包含 utf-8 字符的字符串
- 如何使用 C++将 2D RGB 数组转换为 dds 文件?
- 如何将字符串指针数组转换为字符串类型的智能指针向量?
- 将 int 数组转换为带有小数C++的双精度数组
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- 将字符数组转换为整数值