codice:
if (buffer=="end")
...
while (buffer!="end")
...
non puoi comparare le stringhe in quel modo, devi usare la funzione di libreria strcmp()

codice:
...
temp->nome==buffer;
...
Questa riga di codice invece cosa dovrebbe fare ?