Segfault при попытке получить доступ к первым символам std :: stringC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Segfault при попытке получить доступ к первым символам std :: string

Сообщение Anonymous »

Рассмотрим этот кусок кода: < /p>

Код: Выделить всё

std::string* symbol = (std::string*) to_push->value;
printf("Got symbol\t%s\n", symbol->c_str());
switch ((symbol->operator[](0)) {
Здесь, to_push является указателем на объект, который имеет значение атрибута типа void*. Поэтому я конвертирую это значение в std :: string*, потому что мне нужно знать, какое его содержание. Вы видите здесь, я пытаюсь получить доступ к строке через оператор [0] , не вытянув ее. Я также пробовал много других комбинаций, таких как *(symbol-> c_str ()) или ( *symbol) [0] , но я всегда получаю эту ошибку ошибки сегментации.
Почему это? Что я делаю не так?>

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

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

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

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

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

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