Эта программа написана на C++. Я пытаюсь использовать функцию void для расширения структуры Line, состоящей из целочисленной длины и указателя на следующую подключенную строку. Существует функция void Expand, предназначенная для назначения ссылки на строку указателю строки в структуре. Новая строка должна быть в два раза больше текущей строки. С кодом, который я использую, я получаю ошибку g++ «Принимая адрес временного [-fpermissive]». Может ли кто-нибудь предложить способ, которым функция добавляет допустимый экземпляр ссылки на строку к указателю строки nextLine?
struct Line
{
int length;
Line* nextLine;
};
Line NewLine(Line& lineRef)
{
Line newLine;
newLine.length = lineRef.length * 2;
return newLine;
}
void Expand(Line& lineRef)
{
//Error here states: Taking address of temporary [-fpermissive]
lineRef.nextLine = &NewLine(lineRef);
}
int main() {
Line line;
Expand(line);
cout << line.length << endl;
cout << line.nextLine->length << endl;
return 0;
}