Я пытаюсь изменить данные в массиве, это часть моего кода:Scanf символ без знака в шестнадцатеричной
u_char paket[100];
//here i put some data into array and then trying to change it by user
scanf("%hhx.%hhx.%hhx.%hhx.%hhx.%hhx", &paket[0], &paket[1], &paket[2], &paket[3], &paket[4], &paket[5]);
Когда мой вход, например 88.88.88.88.88.88
он устанавливает paket[0] - paket[5]
до 88, но он также изменяет paket[6],
paket[7]
и paket[8]
до 0.
Как это возможно и как его исправить? Мне нужно изменить только [0] - [5]
Декларация вашего 'u_char' массива может инициализировать все элементы, 0. Ответ какого-то сотрудника, который удалил его на минутку, возможно, был прав: вы можете сканировать int aka 4 байта/символов на каждый идентификатор формата в системе Big-Endian. – collapsar
Ах, моя ошибка, я не опубликовал весь код. Между первой и второй строками i загружаются данные в этот массив. Поэтому перед тем, как scanf эти элементы не установлены в 0, проблема связана с scanf. – user2306381