Sono consapevole che non è possibile utilizzare un elenco di inizializzazione per un array. Tuttavia, ho sentito di modi in cui è possibile impostare un array di puntatori su NULL in un modo simile a un elenco di inizializzatori.C++ Come si imposta un array di puntatori a null in un elenco di inizializzatori come in questo modo?
Non sono sicuro di come sia fatto. Ho sentito che un puntatore è impostato su NULL per impostazione predefinita, anche se non so se questo è garantito/nello standard C++. Inoltre, non sono sicuro che l'inizializzazione attraverso il nuovo operatore rispetto alla normale allocazione possa fare la differenza.
Modifica: Intendo farlo in un file di intestazione/elenco di inizializzazione costruttore. Non voglio metterlo nel costruttore, e non voglio usare un vettore.
Sì! Questo è esattamente quello che volevo, grazie :) – user233320
+1 - Proprio come una parte, C richiede che ci sia almeno un valore tra le parentesi di inizializzazione. C++ aggiunto L'inizializzatore di parentesi graffe ('{}') specificamente perché non c'è ragione per cui il valore predefinito di un oggetto debba essere qualcosa simile a '0', e il codice che richiede l'inizializzazione di un oggetto potrebbe non avere idea di quale impostazione predefinita ragionevole possa essere (in particolare nei modelli). –
Ho pensato che 'int * a = new int [100]();' crea un puntatore a un array di numeri interi che ha un significato inizializzato a zero 'a [i]' dovrebbe contenere 0 ed essere un puntatore dereferenziato al (i + 1) il numero intero di quell'array piuttosto che un puntatore nullo. –