OPC-UA Функция ошибки "UA_ReadRequest_deleteMembers" - PullRequest
0 голосов
/ 15 февраля 2019

Привет Всем, у меня есть один вопрос

I Использование 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 вызвал точку останова. Происходит".Я не могу понять эту ошибку.

enter image description here

1 Ответ

0 голосов
/ 15 февраля 2019

Вы создали не владеющий строкой nodeid.Элементы удаления освобождают используемую память, даже если она не принадлежит, что приводит к повреждению памяти.

Замените UA_NODEID_STRING () на UA_NODEID_STRING_ALLOC ().

...