Originariamente inviato da UnderMaken
codice:
void readName(int socketID)
{
		char a;
		char buffer[MAXSIZE];
		int i=0;
		while(read(socketID,&a,1) > 0){
			if(a!='!')
				buffer[i++]=a;
			else
				break;
		}
		buffer[i]='\0';
		fflush(stdout);
		iP = getPeerIP(socketID);
		//sendList(socketID);
		insertPeerToList(iP, buffer);
		
	
}
codice:
void insertPeerToList(char *iP, char *name){
	...
	newPeer->nome=name;
	...
}
1. buffer in readName è una variabile locale, e tu assegni il suo indirizzo a newPeer->nome in insertPeerToList. Ma essendo buffer locale a readName, cessa d'esistere all'uscita della funzione readName, quindi all'uscita da readName, newPeer->nome di fatto punta ad una zona di memoria non valida.

2. Come lo allochi il valore restituito da getPeerIP?
3. iP a cui assegni il valore restituito da getPeerIP è una variabile globale?