C ++ Zeiger Array Initialisierung Hilfe

9

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?

    
Roderick Taylor 25.08.2011, 07:00
quelle

1 Antwort

5

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.,

    
Cheers and hth. - Alf 25.08.2011, 07:11
quelle

Tags und Links