-
Ritter
Wenn man einen Array in einen Pointer castet, erhält man einen Zeiger auf die erste Zelle des Arrays (nicht auf "den ganzen Array").
(const UBYTE *)main ist also ein Pointer auf eine Speicherstelle der Größe einer UBYTE-Variable, nämlich auf den ersten Wert im Array.
Dieser Pointer ist in deiner Struktur als g.array verfügbar, und *(g.array) wäre der Wert in der ersten Arrayzelle.
Auf Zelle i lässt sich mit *(g.array + i) oder g.array[i] zugreifen. Letzteres ist nur eine andere Schreibweise für Ersteres.
Arrays und Pointer sind in C (fast) das Gleiche, der einzige Unterscheid ist im Prinzip, dass du mit einem Array nicht umspringen darfst, wie mit einer Variable (also z.B. wäre es sinnlos, einen Array zu inkrementieren).
Geändert von dasDull (04.08.2014 um 19:24 Uhr)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln