我希望取消引用一个指针firsm->RootFolder->TotalItemsInView
,该指针在响应到达时取值。
ns1__MessageType* messgT = new ns1__MessageType();
std::vector<ns1__MessageType> v;
int count;
ews__FindItemResponseMessageType *firsm = new ews__FindItemResponseMessageType();
firsm->RootFolder = new ns1__FindItemParentType();
count = *firsm->RootFolder->TotalItemsInView;
for(int i=0; i < count; i++){
v.push_back(messgT[i]);
std::cout << "Hello" << std::endl;
}
TotalItemsInView
在ns1__FindItemParentType
类中定义。
class ns1__FindItemParentType
{ public:
int* TotalItemsInView ;
};
这里TotalItemsInView
将响应SOAP请求而具有整数值。我想在count中使用该整数值来运行&#39; for循环&#39;很多次。
在编辑中我得到Segmentation fault
可能是因为TotalItemsInView
处的空值,但作为回应它会有价值,所以我该怎么办呢。我是指针的新手,任何帮助表示赞赏。谢谢。
更新: 我的XML接收日志:
<m:FindItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:FindItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:RootFolder TotalItemsInView="2" IncludesLastItemInRange="true">
<t:Items>
<t:Message>
<t:ItemId Id="b30rTZMma5" ChangeKey="CQAAABAAAAAWl"/>
</t:Message>
<t:Message>
<t:ItemId Id="tNFsAAAIFUA" ChangeKey="CQAAAAAAWT"/>
</t:Message>
</t:Items>
</m:RootFolder>
</m:FindItemResponseMessage>
</m:ResponseMessages>
</m:FindItemResponse>
答案 0 :(得分:0)
我在firsm->RootFolder = new ns1__FindItemParentType()
处错了,我试图初始化一个空值的响应结构,这就是我解除它的问题。
所以正确的方法是
ews__FindItemResponseMessageType *firsm = new ews__FindItemResponseMessageType();
firsm = findItemRes.ews__FindItemResponse->ResponseMessages->__union_ArrayOfResponseMessagesType->union_ArrayOfResponseMessagesType.FindItemResponseMessage;
count = *firsm->RootFolder->TotalItemsInView;