So setzen Sie Array-Mitglieder auf Null, wenn mein Compiler nicht standardkonform ist

Mein Compiler (C ++ Builder6) erlaubt syntaktisch die Initialisierung von Arraymitgliedern (zumindest mit Null), aber tatsächlich macht er es nicht wirklich. Die Aussage in dem unten angegebenen Beispiel schlägt also je nach Kontext fehl.

#include <assert.h>

struct TT {
    char b[8];
    TT(): b() {}
};

void testIt() {
    TT t;
    assert(t.b[7] == 0);
}

Das Ändern des Compilers ist derzeit keine Option. Meine Frage ist: Wie kann dieser Fehler in Bezug auf zukünftige Portabilität und Standardkonformität am besten behoben werden?

Bearbeiten: Wie sich herausstellt, meineerstes Beispiel warzu kurz. Es hat den Punkt verfehlt, dass der Füllgrad des Arrays so wichtig ist, dass er sehr nahe am Array gespeichert werden muss, also in derselben Klasse.

Selbst wennDas ursprüngliche Problem bleibt bestehenMein eigentliches Problemmuster ist normalerweise folgendes:

struct TT2 {
    int size;
    char data[8];
    // ... some more elements
    TT2(): size(0), data() {}
    // ... some more methods
};

Antworten auf die Frage(3)

Ihre Antwort auf die Frage