Убедитесь, что elem
является указателем, на который можно разыменовать, и что он не указывает ни на какое-то недопустимое место в памяти, либо на то, что он не равен NULL.Кажется, у вас есть какой-то тип связанного списка, и вы пытаетесь получить доступ к узлу списка, который находится на расстоянии двух узлов от текущего узла, на который указывает ptr
.Либо этот узел может не существовать, и поэтому sig
является недопустимым указателем, либо член узла elem
является недопустимым указателем.В любом случае, вы должны обязательно проверить указатели, прежде чем пытаться разыменовать так много шагов.На самом деле, это лучше всего сделать с помощью цикла for, например:
NodoL* temp = ptr;
for (int i=0; i < NUMBER; i++)
{
if (temp->sig == NULL)
break;
temp = temp->sig;
}
cout << *temp->elem << endl;
Таким образом, вы будете либо проходить через определенные NUMBER
предварительно заданные узлы в списке, откуда вы 'в настоящее время, или вы прервете цикл for раньше, потому что вы достигли конца списка.