gpt4 book ai didi

检查结构体是否为空

转载 作者:行者123 更新时间:2023-11-30 14:24:13 24 4
gpt4 key购买 nike

我填充了一个结构(ORDER_EXPIRY_TP *OrderReqXml),现在我想检查结构是否包含任何值?这是我的代码:

OrderReqXml->fIntOrderNumbe =at_int_ord_req->fIntOrderNumber;

OrderReqXml->dLocationCode = 0;
OrderReqXml->dQzUser = at_int_ord_req->dUserId
OrderReqXml->dSuperUserId = 0;

所以基本上我想要2检查OrderReqXml是否为空。

最佳答案

实际上取决于您想要实现的目标。

如果您像这样分配结构:

Order* OrderReqXml = malloc(...);

那么,在为结构赋值之前,您确实应该检查指针是否为 != NULL。一个好的方法是:

Order* OrderReqXml = malloc(...);
if (OrderReqXml != NULL) {
// fill data
} else { /* error handling */ }

如果您从其他地方获取指针,例如从内存中的静态结构体中获取,并且想要检查该结构体是否已填充,您需要检查单个结构体元素:

bool structIsNotFilled(Order* o) {
return ((o->fIntOrderNumber == 0) &&
(o->dLocationCode == 0) &&
(o->dQzUser == 0) &&
(o->dSuperUserId == 0))
}

然而,问题是,您是否希望相信内存中的该结构是用零初始化的。 (您不能相信用 malloc() 分配的内存会初始化为零。)

关于检查结构体是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com