Zeiger in Int
-
Hallo!
Wie kann ich es schaffen, dass folgende Anweisung klappt :
*t->zahl = 12
(also der Zahl 12 zuweisen..)
#include <stdio.h> #include <stdlib.h> struct knoten { int zahl; }; void main (void) { struct knoten *tt; int t; *tt = malloc(sizeof(struct knoten)); t = tt; return 0; }
mfg
andy
-
#include <stdio.h> #include <stdlib.h> struct knoten { int zahl; }; //void main (void) int main(void) { struct knoten *tt; int t; //*tt = malloc(sizeof(struct knoten)); tt=malloc(sozeof(struct knoten)); //t = tt; t=tt->zahl; //oder doch tt->zahl=12; //? return 0; }
Was willst du denn genau machen?
-
#include <stdio.h> #include <stdlib.h> typedef struct { int zahl; } knoten; int main (int argc, char **argv) { knoten *t; int z = 10; t = (knoten*)malloc(sizeof(knoten)); t->zahl = z; printf("%d", t->zahl); return 0; }
-
hi,
bist du sicher das jenes was du gepostet hast auch funktioniert (abgesehen das es "sizeof" heisst und nicht "sozeof", sicher ein tippfehler? bei mir (vc) geht es nicht.
gruss
msp
-
@msp
Andy123s Code funzt auch net, denn er1. reserviert falsch speicher
2. will ein struct an ein int zuweisen und
3. castet auch nicht beim allokieren
-
hi,
habe gerade rausgefunden was der fehler war. den hast du aber schon berichtigt.
gruss
msp
-
GPC schrieb:
3. castet auch nicht beim allokieren
Was kein Fehler ist - dein Code ist zwar nicht falsch aber unüblich und kann in C89 zu komischen Fehlern führen...
Denn in C castet man nicht.