class TDataUrodzenia
{
    public:
        TUint8 iDzien;
        TUint8 iMiesiac;
        TUint16 iRok;
        // cznie 4 bajty
};

const TInt KMaxDlugoscImienia = 16;    // Wielokrotno 4 bajtw
const TInt KMaxDlugoscNazwiska = 32;    // Wielokrotno 4 bajtw

class TOsoba
{
    public:
        TBuf<KMaxDlugoscImienia> iImie;
        TBuf<KMaxDlugoscNazwiska> iNazwisko;
        TDataUrodzenia iDataUrodzenia;
};

// ------------------------------

TOsoba janKowalski;
janKowalski.iImie.Copy( _L("Jan") );
janKowalski.iNazwisko.Copy( _L("Kowalski") );
janKowalski.iDataUrodzenia.iDzien = 1;
janKowalski.iDataUrodzenia.iMiesiac = 1;
janKowalski.iDataUrodzenia.iRok = 1980;

TOsoba grzegorzNowak;
grzegorzNowak.iImie.Copy( _L("Grzegorz") );
grzegorzNowak.iNazwisko.Copy( _L("Nowak") );
grzegorzNowak.iDataUrodzenia.iDzien = 13;
grzegorzNowak.iDataUrodzenia.iMiesiac = 5;
grzegorzNowak.iDataUrodzenia.iRok = 1984;

TOsoba robertKowalczyk;
robertKowalczyk.iImie.Copy( _L("Robert") );
robertKowalczyk.iNazwisko.Copy( _L("Kowalczyk") );
robertKowalczyk.iDataUrodzenia.iDzien = 27;
robertKowalczyk.iDataUrodzenia.iMiesiac = 11;
robertKowalczyk.iDataUrodzenia.iRok = 1982;    

// Definiujemy warto granulacji. Nie jest to
// obowizkowe, poniewa konstruktor domylny RArray()
// przyjmuje warto granulacji rwn 8.
const TInt KGranulacja = 3;
RArray< TOsoba > osoby( KGranulacja );
CleanupClosePushL( osoby );
osoby.AppendL( janKowalski );
osoby.AppendL( grzegorzNowak );
osoby.AppendL( robertKowalczyk );

// Dalsze operacje...

CleanupStack::PopAndDestroy( &osoby );
