Привет господа програмисты!
Вопрос наверное очень глупый но тем не менее…для меня это вопрос:)
Есть функция с входным массивом aData и выходным outData, которая берет размер aStrLen из массива aData и по нему копирует данные в выходной массив outData
WORD StrFromArray( char *aData, int len, const int aFromPos, char *outData)
{
WORD aStrLen;
aStrLen = WordFromArray(aData, aFromPos);
memset( outData, 0, aStrLen);
for ( int i = aFromPos + 2; i <= aFromPos + aStrLen + 1; i++ )
{
DBG_PutS(aData); //функция для дебага
outData[i - aFromPos - 2] = aData; // просто присваиваю элемент массива aData элементу outData
DBG_PutS(outData[i - aFromPos - 2]);
}
return aStrLen;
}
Вызываю так:
char *vResultBuf, *aErrorMessage;
StrFromArray(vResultBuf, strlen(vResultBuf), 19, aErrorMessage);
а в дебаге вижу:
aData[21] = 205
outData[0] = 0
aData[22] = 229
outData[1] = 0
aData[23] = 229
outData[2] = 59
aData[24] = 238
outData[3] = 32
и т.д
Т.е. я явно в цикле присваиваю элементу одного массива элемент другого, а в дебаге вижу, что элементы outData и aData отличаются
И мало того: массив outData я обнуляю перед циклом, а он не нулевой (как это видно в дебаге). Как это можно объяснить?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Вызываешь не с массивами,а с указателями.
Если вызываю так, то ничего не меняется:
char vResultBuf[30], aErrorMessage[30];
StrFromArray(vResultBuf, strlen(vResultBuf), 19, aErrorMessage);
Используешь strlen где не следует.