Naja, alle Elemente eines Arrays sind gleich groß, da kannst du nicht viel machen. Bei dem Zugangscode kannst du ein Byte in low und high teilen (d.h. ein Byte enthält dann 2 Zeichen des Zugangscodes), dann brauchst du "nur" 4 Bytes um den ganzen Code abzuspeichern.
Beim Datum kannst du nicht viel sparen, außer, wenn du die low-Bytes des Jahres weglässt (also statt 2004 nur 04 abspeichern). Um diese 4 Bytes kommt man nicht umhin.
Für die Zeit brauchst du 2 Bytes (Minute, Stunde).

Das wären insgesammt 10 Bytes, bei 50 Einträgen ergiben sich 500 Bytes. In einem PIC18F452 hast du 1536 Bytes frei. Also nimmst du damit "nur" 1/3 des vorhandenen Speichers in Anspruch.

naja, als Pointer würde ich die "Anfangs-" und "Endszeichen" nicht bezeichnen. Weil in C ein Pointer die Andresse einer Memoryblockes beinhaltet. Eher als Laufvariable.

Naja, wie du in C eine Structur in ein Array haust:
Code:
#define MAXCOUNT 50

struct DATA
{
     char ID76;
     char ID54;
     char ID32;
     char ID10;

     char day;
     char month;
     char year;

     char hour;
     char minute;
}data;

data Daten[MAXCOUNT];
MfG
Mobius