下面的C版本new std::byte[sizeof(data)]
在普通C中的等价物是什么?
我试图在普通C(Windows 10)中创建一个系统字节缓冲区,这样我就可以传入一个空指针,以便通过IOCTL与内核驱动程序通信。
问题是我看到的例子是用C写的,我正在试图弄清楚如何用普通C写它。
下面是我正在尝试转换的C++代码的示例:
std::byte* buffer;
try {
buffer = new std::byte[sizeof(data)];
}
catch (const std::exception& e) {
throw gcnew InteropException(e);
}
// Fill the buffer here
try {
write(buffer); // Buffer is passed in as a void* aka PVOID
delete[] buffer;
}
catch (const std::exception& e) {
delete[] buffer;
throw gcnew InteropException(e);
}
2条答案
按热度按时间tcomlyy61#
下面的C++版本
new std::byte[sizeof(data)]
在普通C中的等价物是什么?使用
malloc()
/free()
,例如:htrmnn0y2#
std::byte
:因此,
或