大家好我有一个问题
我在客户端使用OPC-UA,遇到了一些问题
这是问题代码

UA_ReadRequest requestPos;
UA_ReadRequest_init(&requestPos);
UA_ReadValueId idPos;
UA_ReadValueId_init(&idPos);
idPos.attributeId = UA_ATTRIBUTEID_VALUE;
idPos.nodeId = UA_NODEID_STRING(6, (char*)"::AsGlobalPV:gMotionPos");
requestPos.nodesToRead = &idPos;
requestPos.nodesToReadSize = 1;

UA_ReadResponse responsePos = UA_Client_Service_read(client, requestPos);

UA_ReadRequest_deleteMembers(&requestPos);

我想清除UA_ReadRequest requestPos;,所以我使用UA_ReadRequest_deleteMembers(&requestPos);,但编译器说:“***.exe导致了断点发生”我不能理解这个错误。

最佳答案

您已经创建了一个非所有者字符串nodeid删除成员将释放所使用的内存,即使它不是所拥有的,也会导致内存损坏。
将UA_NODEID_STRING()替换为UA_NODEID_STRING_ALLOC()。

10-06 04:12