У меня есть массив структур, для которых мне нужно преобразовать CString в массив char
.Это преобразование происходит для 1000 точек данных, и выходные данные записываются в новый массив.Итак, моя проблема: у меня есть цикл for, который перебирает массив CStrings, преобразует их в массив char
и записывает это в мой «новый» массив.Проблема в том, что каждая итерация записывает вновь преобразованный массив char
во все предыдущие элементы массива.Например, newArr[0]
= oldArr[0]
= работает.newArr[1]
= oldArr[1]
НО сейчас newArr[0]
также = oldArr[1]
.Затем newArr[2]
= oldArr[2]
, но снова newArr[0]
, newArr[1]
и newArr[2]
= oldArr[2]
.
Мой код выглядит следующим образом:
for (size_t i = 0; i < MAX_TAGS; i++)
{
char nodeStr[40];
strcpy_s(nodeStr, (strlen(theConf.confP[i].nodeID) + 1), theConf.confP[i].nodeID);
monitoredNodes[i] = UA_NODEID_STRING(theConf.confP[i].namespaceIndex, nodeStr);
}
Полагаю, я что-то здесь не так сделал, но я пробовал все виды, включая просмотр оптимизаций компилятора, но каждый раз это одна и та же проблема,несмотря на то, что я устанавливал элемент массива по индексу, все предыдущие элементы массива, похоже, тоже записываются.