我一直认为在将 void* 转换为 struct* 后检查指针是避免无效转换的有效方法。就像是
MyStructOne* pStructOne = (MyStructOne*)someVoidPointer;
if(!pStructOne)
return 0;
看来情况并非如此,因为我可以将相同的数据转换为两个不同的结构并获得相同的有效地址。然后程序很乐意用其中的任何随机数据填充我的结构字段。
什么是转换结构指针的安全方法?
我不能使用 dynamic_cast<> 因为它不是一个类。
谢谢您的帮助!