Si, ma forse mi sono spiegato male. Non è questo il modo di programmare, uno se ne accorge quando i progetti iniziano a diventare più grandi o ti trovi a gestire dei metodi fatti da altre persone, o sei tu stesso a dover implementare qualcosa che poi verrà utilizzato da altri.Originariamente inviato da Ippo343
Si, ma se l'oggetto da restituire occupa molta memoria, restituirlo per valore è troppo costoso. Un po' come passare un argomento molto massiccio per puntatore, solo che è in uscita e non in entrata.
Vuoi tornare un puntatore ad un oggetto che hai creato e "riempito" dentro quella funzione? Invece di crearlo dentro la funzione che poi ti ritorna l'indirizzo, passa alla funzione stessa il puntatore all'oggetto che può essere modificato tranquillamente all'interno della tua funzione. In questo modo non ci saranno problemi per la deallocazione, accade più spesso di quanto uno possa immaginare di dimenticarsi di deallocare un oggetto il prima possibile perchè non ci si è accorti (o se come ti dicevo prima la funzione non l'hai fatta te) non si è a conoscenza che sia stata allocata memoria, e tra migliaia di righe di codice il fatto può sfuggire.
O si da un nome alla funzione che richiama il fatto che allochi memoria (vedi malloc) o si procede come ti ho detto, che è in ogni caso la soluzione migliore.