Primo punto: non c'è quasi mai un buon motivo per utilizzare il modulo di forma di nuovo o di eliminazione per iniziare - utilizzare invece std :: vector (o qualche altro contenitore).
Secondo: indietro nell'era buia del C++, si doveva specificare la dimensione dell'array che si stava cancellando, quindi se si utilizzava x = new T[N]
, l'eliminazione corrispondente era delete [N] x
. L'obbligo di specificare esplicitamente la dimensione è stato rimosso lungo, ma alcuni compilatori (in particolare quelli che si preoccupano della retrocompatibilità con codice antico) lo consentono comunque.
A meno che tu non abbia davvero bisogno di rimanere compatibile con un compilatore antico (uno di 20 anni circa) non dovresti usarlo. Poi di nuovo, a meno che non sia necessario rimanere compatibili con un compilatore così vecchio da non supportare alcun contenitore standard, non si dovrebbe usare la forma dell'array di new o delete in primo luogo. Semplicemente fermati!
fonte
2009-11-17 15:01:31
+1. informazioni utili –
significa che è possibile eliminare [2N] array; e che avrebbe compilato –
Grazie, questo è quello che stavo cercando. – raven