У меня есть список из 6 элементов типа структуры:
struct entry
{
int value;
struct entry *next;
};
Я пытаюсь создать функцию для инициализации этих шести элементов, присваивая случайное значение int каждому члену значения.
void initializeList(struct entry *l_p)
{
while(l_p!=_END)
{
l_p->value=rand()%999;
l_p=l_p->next;
}
}
Когда эта функция вызывается в основном, *l_p
указывает на самый первый элемент списка._END
- это глобальная константа, определяемая следующим образом:
struct entry const *_END=(struct entry *)0;
Теперь, каждый раз, когда я запускаю свой код, я получаю следующее:
Ошибка сегментации (ядро сброшено)
Процесс возвратил 139 (0x8B)
Я знаю, это означает, что я пытаюсь получить доступ к части памяти, к которой у меня нет доступа, но я могу 'не могу понять, как исправить мой код.Кроме того, я почти уверен, что проблема вызвана initializeList
, потому что, если я удаляю ее и вручную инициализирую каждый элемент списка, программа работает без сбоев.