Struct und Zugriff
-
Hallo, ich hätte ein Frage zu dem Zugriff in eine Struktur
struct daten { int eins; float zwei, drei; } info; int main(void) { info.eins = 100; struct daten *ptr; ptr = &info; (*ptr).zwei = 5, 5; // 1 das gleich wie 2 ptr->zwei = 5.5; // 2 das gleiche wie 1 info.zwei = 5.5; // 3 info ist ja eine Instanz Zugriff über Punktoperator }
1 und 2 verstehe ich hier mache ich den Zugriff über einen Zeiger auf die Instanz. Und bei 3 greife ich direkt über die Instanz zu. Ist nun der Unterschied nur darin das der Zugriff direkt und Indirekt ist? Oder hat das noch mehr benefit? Sonst kann ich es ja gleich bleiben lassen. Grüße
-
Relativ häufig wirst Du Deine Objekte dynamisch allozieren (*alloc()).
Oder Du bekommst nur einen Zeiger auf ein Objekt z.B. als Parameter einer Funktion.
Dann sind Zeiger das natürliche Mittel für den Zugriff.Bei einem Objekt wie info ist der Zeiger nur zusätzlicher Ballast - brauchste nicht...
-
Aa ok dann macht das auch Sinn, danke. Bin noch nicht beim Malloc und dynamischer Speicherbeschaffung, daher ist es immer schwer ab zu schätzen was dahintersteckt.
-
Die Aufgabe zeigt anschaulich die 3 Möglichkeiten für den Zugriff auf Strukturelemente
(wobei ich (1) als unnötig erachte, war sicherlich zur Herleitung des -> Operators. Korrigiert mich gern.)Ich bin sicher wenn du weiter fortschreitest, werden dir die von "Furble Wurble" genannten Einsatzgebiete klarer.