Последняя строка этого конкретного кодового блока выдает ошибку «lvalue требуется как левый операнд присваивания» Путаница заключается в том, почему последняя строка выдает эту ошибку, а вторая строка - нет.
int p2 = 0;
spage = find(in.startpage);
spage->noutgoing++;
spage->outgoing = (struct webpage *)realloc((spage->outgoing),((spage->noutgoing)*sizeof(struct webpage)));
epage = find(in.endpage);
epage->nincoming++;
epage->incoming = (struct webpage *)realloc((epage->incoming),((epage->nincoming)*sizeof(struct webpage)));
position = ((epage->nincoming));
&(epage->incoming[0]) = spage;
&(epage->incoming[p2]) = spage;
, где spage
, epage
- структуры, определенные ниже:
struct webpage {
char name; /* name of page */
struct webpage *outgoing; //array of pointers pointing to outgoing webpages
struct webpage *incoming ; //array of pointers pointing to incoming webpages
int noutgoing;
int nincoming;
};
и функция find
возвращает указатель на struct webpage
.
Проблема была решена путем изменения структур outgoing
и incoming
на двойные указатели и изменения последней строки на (epage->incoming[p2]) = spage;
.
Все еще не знаю, почему произошла ошибка ...