Вы правы в том, что объявленная переменная const
никогда не может быть изменена. К сожалению, ваша строка mypoint_head= InitPoint(size);
считается попыткой изменить переменную. Вы должны инициализировать переменную const
значением, когда оно объявлено.
Попробуйте что-то вроде этого:
//globals
static POINT head_of_list;
POINT* const mypoint_head = &head_of_list;
Теперь вы можете инициализировать список, используя:
mypoint_head->next= InitPoint(size-1);
Объект заголовка списка был объявлен статически, поэтому он всегда существует, и вам необходимо соответствующим образом настроить параметры InitPoint
. Вы также можете иметь ссылку extern
на указатель в другом файле, не делая объект, на который он указывает, напрямую доступным (для чего бы это ни стоило).