Я пытался исправить это самостоятельно, но я не иду.
Ну, выражение buffer[2]
имеет тип char
.Вы не можете разыменовать char
.Возможно, вы имели в виду ...
buffer + 2
, что эквивалентно
&buffer[2]
?
Это скомпилируется, но в качестве аргумента atoi
это неправильно: *Для 1017 * требуется строка с нулевым символом в конце, которая содержит хотя бы одну цифру, а указатель на последний элемент buffer
в лучшем случае может быть указателем на завершающий нулевой байт (без цифр).
Возможно, это то, что вы намеревались:
atoi( buffer )
Или, если вам нужна цифра, которая хранится в индексе 2:
buffer[2] - '0'
(C ++ гарантирует, что коды символов десятичных цифр являются последовательными).
Или, если это значение char
является прямым целочисленным значением:
buffer[2]