codice:
if (d.display)
   os<<'1';
else
   os<<'0';
d.display è un array... quindi va indicizzato, altrimenti quell'espressione sarà sempre vera (essendo che stai testando la "bontà" del puntatore)... infatti stai usando due for annidati, ma non ne stai usando gli indici.


Ciao.