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