Ich hatte Probleme mit der Initialisierung von Zeigerfeldern. Was ich mit gcc c ++ (4.6.0) kompiliert habe, ist:
%Vor%Initialisiert das Array von Zeigern nicht immer. (Die meiste Zeit gab es mir eine Reihe von Nullzeigern, die mich verwirrten)
%Vor%Initialisiert alle Zeiger im Array auf 0 (Nullzeiger).
Der Code, den ich schreibe, soll auf Windows / Linux / Mac / BSD-Plattformen portierbar sein. Ist das eine Besonderheit des gcc c ++ Compilers? oder ist es Standard C ++? Wo im Standard steht das?
Diese Wert-Initialisierung ist Standard C ++.
Die relevante Norm ist in C ++ 98 und C ++ 03 §5.3.4 / 15. In C ++ 98 war es Standard-Initialisierung, in C ++ 03 und später ist es Wert Initialisierung. Für Ihre Zeiger reduzieren beide auf Null-Initialisierung.
C ++ 03 §5.3.4 / 15:
- Wenn der new-initializer das Format
()
hat, wird der Wert initialisiert (8.5);
In C ++ 0x bezieht sich dieser Absatz stattdessen auf "die Initialisierungsregeln von 8.5 für direkte Initialisierung", wo Sie in N3290 (dem FDIS) ungefähr den gleichen Wortlaut in §8.5 / 16 finden.
Prost & amp; hth.,
Tags und Links c++