SP_DEVICE_INTERFACE_DETAIL_DATA
是一个可变长度结构,以一个包含其大小的字段开头,后跟一个数组(不是指向数组的指针)。
用所需的数组长度分配此结构的简便方法是什么?
最佳答案
我按照 MSalters 的建议做了:
std::vector<char> rawbuf(sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA) + bufferlen);
SP_DEVICE_INTERFACE_DETAIL_DATA* pDIDD =
reinterpret_cast<SP_DEVICE_INTERFACE_DETAIL_DATA*>(&rawbuf[0]);
编辑:
按照 Raymond Chen 的示例(也讨论了 on his blog),我可以按如下方式分配 SP_DEVICE_INTERFACE_DETAIL_DATA
结构:
PSP_DEVICE_INTERFACE_DETAIL_DATA pDIDD =
malloc(FIELD_OFFSET(SP_DEVICE_INTERFACE_DETAIL_DATA,
DevicePath[bufferlen]));
关于c++ - 如何分配SP_DEVICE_INTERFACE_DETAIL_DATA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882086/