Struktur-Pointer-scanf
-
warum geht nicht?
#include <stdio.h> struct test { int x; }*p; int main() { printf ("Wert: "); scanf ("%i",&p->x); printf ("%i",p->x); getchar(); return 0; }
-
Weil keine Beine.
Und weil p keine gültige Adresse zugwiesen bekommen hat, guckst du:struct test { int x; }*p; int main() { printf ( "%p", p ); // Guckst du: 00000000 ( Zeiger hat keine gültige Adresse. ) getchar(); return 0; }
-
Das ist natürlich schlecht...
sry kenne mich leider in c nicht
sonderlich gut aus.
Was genau macht dann p->x?
und gibt es eine Möglichkeit#include <stdio.h> struct test { int x; }*p; int main() { printf ("Wert: "); scanf ("%i",&p->x); printf ("%i",p->x); getchar(); return 0; }
zum laufen zu bekommen?
#include <stdio.h> int main() { int y; int *z; z=&y; printf ("Wert: "); scanf ("%i",z); //kein & da z bereits auf Adresse von y printf ("%i",*z); //* da Inhalt von Pointer getchar(); return 0; }
Bei einer Struktur kenne ich leider nur -> Operator...
wie weise ich eine Adresse zu?
schon mal thx 4 help
-
Guest189374 schrieb:
Was genau macht dann p->x
Das ist der Wert x bzw. die Variable x der Struktur, auf den der Zeiger p zeigt.
Guest189374 schrieb:
wie weise ich eine Adresse zu?
Das geht so, wie mit deiner integer Variable, du brauchst den Zeiger hier nicht unbedingt:
struct test { int x; }testvariable, *testzeiger; int main() { testzeiger = &testvariable; scanf ( "%d", &testzeiger->x ); printf("%d\n", testzeiger->x ); // Hier brauchst du den Zeiger nicht, eine 'normale' Variable tuts auch: scanf ( "%d", &testvariable.x ); printf("%d\n", testvariable.x ); return 0; }
-
testzeiger = &testvariable;
Hier bekommt also mein Pointer die Adresse der Struktur zugewiesen?
Alles klar, also vielen Dank
-
Guest189374 schrieb:
testzeiger = &testvariable;
Hier bekommt also mein Pointer die Adresse der Struktur zugewiesen?
Alles klar, also vielen DankGeeeeee - nau!
Büdde