у меня возникли трудности с функцией strtol() в C, вот фрагмент кода того, как я пытаюсь ее использовать
char TempChar;
char SerialBuffer[21];
char hexVoltage[2];
long intVoltage;
do
{
Status = ReadFile(hComm, &TempChar, sizeof(TempChar), &NoBytesRead, NULL);
SerialBuffer[i] = TempChar;
i++;
}
while (NoBytesRead > 0);
memcpy(hexVoltage, SerialBuffer+3, 2);
intVoltage = strtol(hexVoltage, NULL, 16);
Итак, вопрос в том, почему strtol() возвращает 0? И как преобразовать массив значений char в шестнадцатеричном формате в int (длинный в данном конкретном случае)? hexVoltage в моем случае содержит {03, 34} после memcpy(). Заранее спасибо. Очень ценю помощь здесь.
hexVoltage[2]
не существует.hexVoltage
имеет только 2 элемента. - person user694733   schedule 09.09.2016