Ich weiß, dass Sie keine Initialisierungsliste für ein Array verwenden können. Ich habe jedoch von Möglichkeiten gehört, wie Sie ein Array von Zeigern auf NULL auf eine Art setzen können, die einer Initialisiererliste ähnlich ist.C++ Wie setzt man ein Array von Zeigern in einer Initialisiererliste auf null?
Ich bin mir nicht sicher, wie das gemacht wird. Ich habe gehört, dass ein Zeiger standardmäßig auf NULL gesetzt ist, obwohl ich nicht weiß, ob dies im C++ - Standard garantiert ist. Ich bin mir auch nicht sicher, ob die Initialisierung durch den neuen Betreiber im Vergleich zur normalen Zuweisung auch einen Unterschied machen kann.
Edit: Ich meine, dies in einer Header-Datei/Konstruktor Initialisierungsliste zu tun. Ich möchte es nicht in den Konstruktor einfügen, und ich möchte keinen Vector verwenden.
Ja! Das ist genau das, was ich wollte, danke :) – user233320
+1 - Nur so nebenbei erfordert C, dass es mindestens einen Wert zwischen den Initialisierungsstreben gibt. C++ hat den leeren Klammerinitialisierer ('{}') hinzugefügt, weil es keinen Grund dafür gibt, dass der Standardwert eines Objekts "0" sein muss und der Code, der nach der Initialisierung eines Objekts fragt, keine Ahnung hat, was ein vernünftiger Standard sein könnte (besonders in Vorlagen). –
Ich dachte 'int * a = new int [100]();' erzeugt einen Zeiger auf ein Array von ganzen Zahlen, die null initialisiert sind. 'A [i]' würde 0 enthalten und ein dereferenzierter Zeiger auf die (i + 1 sein) die ganze Zahl in diesem Array und nicht ein Nullzeiger. –