OPC-UA Функция ошибки "UA_ReadRequest_deleteMembers"
Привет всем, у меня есть один вопрос
Я использую 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 вызвал точку останова. Происходит". Я не могу понять эту ошибку.
1 ответ
Вы создали не владеющий строкой nodeid. Элементы удаления освобождают используемую память, даже если она не принадлежит, что приводит к повреждению памяти.
Замените UA_NODEID_STRING() на UA_NODEID_STRING_ALLOC().