Salve..ho il seguente problema..
due funzioni di cui la prima restituisce un puntatore a NODO che è una struct fatta in questo modo :
typedef nodo NODO;
struct nodo {
NODO* next;
NODO* prev;
float key;
};
//------------------------------------
NODO* init(float key){
NODO* n = new NODO;
n->key=key;
n->next=n;
n->prev=n;
return n;
}
void list_insert(NODO* &lista,NODO* &x){
lista=x;
}
//-------------------- Nel main ho una chiamata alla funzione list_insert fatta così :
list_insert(A[0],init(ele1)); // con NODO* A[10] e float ele1;
//al momento della chiamata mi appare questo errore :
26 \main.cpp invalid initialization of non-const reference of type 'NODO*&' from a temporary of type 'NODO*'
20 \list.h in passing argument 2 of `void list_insert(NODO*&, NODO*&)'
errore che non mi viene dato se passo il secondo parametro per valore anzichè riferimento. Visto che comunque il secondo parametro è di ingresso/uscita (la seconda funzione non è quella che ho trascritta, la sto solo provando) necessito di passarla per riferimento.
inoltre..se non faccio una chiamata annidata ovvero se faccio prima:
NODO* provaele1=init(ele1);
list_insert(A[0],provaele1);
funziona tutto correttamente anche passando per riferimento il secondo parametro. Da cosa può dipendere?