Non l'ho mai capito davvero. Posso farlo, ma non capisco perché vorrei.
Ad esempio, stavo programmando un gioco ieri e ho impostato una serie di puntatori per i nemici allocati dinamicamente nel gioco, quindi l'ho passato a una funzione che aggiorna le loro posizioni.
Quando ho eseguito il gioco, ho ricevuto uno di quegli errori di asserzione non descrittivi, qualcosa su un blocco di memoria non esistente, non lo so. Era un errore in fase di esecuzione, quindi non ha detto dove si trovava il problema. Quindi ho appena detto avvitarlo e riscriverlo con l'istanza statica, cioè:
while(n<4)
{
Enemy tempEnemy = Enemy(3, 4);
enemyVector.push_back(tempEnemy);
n++;
}
updatePositions(&enemyVector);
E ha funzionato immediatamente alla perfezione.
Ora certo, alcuni di voi potrebbero pensare qualcosa all'effetto di "Forse se sapessi cosa stavi facendo" o forse "n00b non può usare i puntatori L0L", ma francamente, non puoi davvero negarlo rendono le cose troppo complicate, quindi la maggior parte delle lingue moderne le ha eliminate completamente.
Ma per favore ... qualcuno - Cosa È il punto di allocazione dinamica? Che vantaggio offre? Perché non dovrei mai fare ciò che ho appena fatto nell'esempio sopra?