Учитывая API, который возвращает Const char*, как получить адрес своей обратной стоимости?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Учитывая API, который возвращает Const char*, как получить адрес своей обратной стоимости?

Сообщение Anonymous »

У меня есть доступ к API, который возвращает Const char *, где гарантировано, что базовая строка действительна на протяжении всей программы, как ниже:
extern const char *getStr(); // an API that returns const char*
int main() {
const char **p_tmp = &( getStr() ); // HOW??
}

Я хотел бы получить адрес базового констатации * и использовать его на протяжении всей программы, однако, поскольку возвращаемое значение имеет тип const char *, вместо const char *& , получение адреса возвращаемого значения получает ошибку: lvalue требуется как unary 'antaird . Возвращение const char *, то есть, я не могу не изменить функцию, чтобы вернуть констант char *& и не Const char ** вместо этого. Есть ли какой -нибудь способ получить адрес базового констатации *?static std::vector tmp;
static int indexInTmp = 0;
extern const char* getStr();
int main() {
tmp.emplace_back( getStr() );
const char **p_tmp = &tmp[indexInTmp++];
// ...other things
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... es-address
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»