如何将LARGE_INTEGER*赋值给LARGE_INTEGER?求解决方案
解决LARGE_INTEGER指针到值类型的赋值问题
嘿,我明白你遇到的困扰了!你现在的问题是把指针类型的LARGE_INTEGER*直接赋值给值类型的LARGE_INTEGER,直接强制转换是行不通的——因为指针本质是内存地址,不是结构体本身的数据,编译器当然会报错。
正确的做法是解引用指针
你只需要通过*操作符获取指针指向的实际结构体实例,就能完成赋值:
Dir->Siz = *Siz;
这里的*Siz会读取指针Siz指向的内存中的LARGE_INTEGER结构体数据,然后完整拷贝给Dir->Siz,完全符合类型要求。
额外提醒:处理空指针情况
如果Siz有可能是NULL(空指针),一定要先做检查,避免程序崩溃:
if (Siz != nullptr) { Dir->Siz = *Siz; } else { // 可以根据需求初始化Dir->Siz,比如设为0 Dir->Siz.QuadPart = 0; }
毕竟LARGE_INTEGER是一个联合类型,包含LowPart、HighPart和QuadPart成员,解引用赋值会把所有成员的数据都正确拷贝过去,这正是你需要的效果。
内容的提问来源于stack exchange,提问作者kishoredbn
相关产品推荐
相关产品推荐

