Что такое \ 363 \ 353 \ 377 \ 377 \ 377 \ 177? - PullRequest
4 голосов
/ 02 июня 2011
(gdb) p (char*)0x7fffffffe9c8
$16 = 0x7fffffffe9c8 "\363\353\377\377\377\177"

Это не выглядит ни ascii, ни multibyte, что это?

Ответы [ 4 ]

7 голосов
/ 02 июня 2011

Это восьмеричные символьные экранирования. Они обычно используются для вставки байтов в строку, которые не имеют смысла в виде текста или должны иметь определенное двоичное значение. Например, \377 - это шестнадцатеричное значение ff или десятичное 255, которое в ASCII будет равно ÿ, но, скорее всего, в этом контексте имеет совсем другое значение.

5 голосов
/ 02 июня 2011

Это не текст. Похоже, что адрес, который вы изучаете, содержит еще один указатель на что-то в стеке. Попробуйте это как (char **)0x7fffffffe9c8, или как-нибудь другой тип двойного указателя.

Редактировать: Для уточнения, OP изучает нетекстовые данные в отладчике и запрашивает кодировку. Правильный ответ просто, что это не текст. Это целое число 0x7fffffffebf3 и это почти наверняка указатель на строку (так как он не выровнен и указывает где-то в стеке), что означает, что исходный указатель, вероятно, имел тип char **, а не char *.

0 голосов
/ 27 мая 2019

попробуй п / х

Это должно напечатать значение в шестнадцатеричном формате в шестнадцатеричном формате

0 голосов
/ 02 июня 2011

Запрошенная вами часть может быть кодом оболочки по этому адресу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...