Тази програма е написана на 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;
}