Получение адреса, хранящегося в виде строки - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть строка

char value[16]="ffffffffc06e91"

, и мне нужно получить адрес, сохраненный в виде строки в значении переменной.

т.е. ..

void * ptr = NULL;
somefunction(value,ptr); // ptr = 0xffffffffc06e91

Есть ли такая функция или метод для этого?

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Мы могли бы использовать strtol для достижения этой цели, благодаря @Bwebb за указание на atoi, который привел меня к strtol.

void * ptr = (void*)(long)strtol(value,NULL,16);
0 голосов
/ 21 ноября 2018

Не использовать atoi();значение int, вероятно, недостаточно велико для хранения этого значения, и функция не будет работать с шестнадцатеричными строками.

Используйте взамен strtoll():

void *ptr = (void*)strtoll("ffffffffc06e91", NULL, 16);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...