Forum: PC-Programmierung structs( mit pointer als Variable)


von Feldi (Gast)


Lesenswert?

Hallo zusammen, habe folgendes Verständnissproblem bei Structs
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
5
struct ListElem { int prio; char*Name; struct ListElem*next;};      // Global(1.1)
6
7
8
9
10
int main(int argc, char *argv[])
11
{
12
13
14
  struct ListElem Elem1 = {5,"Eins",20};                            // Sehe ich das richtig das hier eine Adresse für Name  und next vorgebe'??
15
16
17
  printf ("Groesse:\n %d Bytes \n", sizeof (Elem1));                // Drucken der verschiedenen Werte (1.2)
18
  printf ("Name: \n %s \n", Elem1.Name);
19
  printf ("Prioritaet: \n %d \n", Elem1.prio);
20
  printf ("Verkettungsinfo: \n %x \n", Elem1.next);
21
22
23
24
  system("PAUSE");
25
  return 0;
26
}


Irgendwie verstehe ich
1
struct ListElem Elem1 = {5,"Eins",20};
nicht!

Eigentlich weise ich doch mit "Eins" eine Adresse dem namen zu und mit 
20 die Adresse "20" dem next zu, da ja name und next zuvor als zeiger 
deklariert wurden.
aber irgendwie kann das doch nicht sein!oder??

Gruß feldi

von Yoghurtmonster (Gast)


Lesenswert?

Feldi schrieb:
> aber irgendwie kann das doch nicht sein!oder??
Wieso denn nicht? struct in einer Zeile zu definieren ist imho 
unübersichtlich, aber davon abgesehen sind deine Ausführungen alle 
korrekt. Könnte höchstens eine Warnung geben "makes Pointer from 
Integer" oder so und wenn man versucht auf *20 (Adresse) zuzugreifen 
stürzt der Kram vermutlich ab...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.