Jak zerować członków tablicy, gdy mój kompilator nie jest zgodny ze standardem

Mój kompilator (C ++ Builder6) syntaktycznie zezwala na inicjalizację elementów tablicy (przynajmniej z zerem), ale tak naprawdę nie robi tego. Tak więc twierdzenie w poniższym przykładzie nie powiedzie się w zależności od kontekstu.

#include <assert.h>

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

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

Zmiana kompilatora nie jest obecnie dostępna. Moje pytanie brzmi: jaki będzie najlepszy sposób „naprawy” tej wady w odniesieniu do przyszłej przenośności i standardowej zgodności?

Edytować: Jak się okazuje, mójpierwszy przykład byłozbyt krótki. Brakowało mu punktu, że poziom wypełnienia tablicy jest tak istotny, że musi być przechowywany bardzo blisko tablicy, co jest: w tej samej klasie.

Nawet jeślioryginalny problem pozostaje, moim faktycznym wzorem problemu jest zazwyczaj:

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

questionAnswers(3)

yourAnswerToTheQuestion