Ошибка разыменования указателя в С++

285
15 июля 2022, 22:30
#include <iostream>
using namespace std;
int main()
{
    string text = "Hello!";
    string* pointer = &text;  
    pointer++;
    cout << pointer << " - " << *pointer << endl;
    system("pause");
}

Здравствуйте. Почему когда я разыменовываю pointer вылетает ошибка?

А как можно, всё-ж таки узнать то значение?

Answer 1

После

pointer++;

указатель указывает на "следующую" строку, которой нет. Как если бы был массив строк, но его ведь нет...

Естественно, разыменование ничего хорошего не дает.

Answer 2

ошибка вылетает, когда вы пытаетесь сделать следующее

pointer++;
*pointer

у вас был указатель на объект (строка), вы прибавили к указателю 1 и теперь это уже непонятно что

READ ALSO
что возвращает decltype и как он работает?

что возвращает decltype и как он работает?

Всем здравствуйтеЯ начал недавно изучать c++ и столкнулся с оператором decltype

337
Создание М-мерного дерева на языке Си

Создание М-мерного дерева на языке Си

Здравствуйтe, Хочу написать собственное дерево на языке си, каждый узел которого имеет более двух потомковЯ создал структуру, в которую входит...

258
Ввод переменной типа enum с клавиатуры

Ввод переменной типа enum с клавиатуры

У меня есть класс HealthyFood и enum Fruits{ apple, pear, peach, orange}Я создаю в ранее сказанном классе переменную fruit типа данных Fruits и хочу создать сеттер для...

285
Класс обертка для управления константностью объекта

Класс обертка для управления константностью объекта

У меня есть несколько классов, в которых есть функции lock() и unlock(), которые управляют переменной класса bool lockЕсли lock == true, то объект становится...

214