Hallo,
sowas aergerliches, die Antwort war zur Haelfte geschrieben, und kmail
schmierte ab.
also nochmal..
> struct the_struct{
> int val;
> int foo;
> int bar;
> unsigned char myarray[2][2][2];
> double bla;
> }
>
> struct the_struct *mystruct;
>
> nochmal f�r mich langsam zum mitschreiben:
> was ist der Unterschied zu
>
> mystruct.val
> und
> mystruct->val
Deklarierst Du mystruct mit
struct the_struct mystruct;
werden Elemente durch Punkt angesprochen,
und mit
struct the_struct *mystruct;
durch ->
Nach der Deklaration
struct the_struct mystruct;
kannst Du die Struktur gleich benutzen
mystruct.val = 0; z.B.
Und bei der Deklaration
struct the_struct *mystruct;
hast Du nur ein Zeiger , musst das Objekt also auch erzeugen
mystruct = ( struct mystruct * ) malloc( sizeof( struct mystruct ) );
Erst jetzt kannst Du die elemente ansprechen
mystruct->val=0;
> wie kann ich mich absichern wann ein neuer Zeiger angelegt wird?
> lege ich mit
> mystruct->val= current_val; implizit einen neuen Zeiger vom typ mystruct an?
> oder wird die n�chste Zuweisung in den gleichen Zeiger;
> mystruct->foo=current_foo; geschrieben?
?????????????????? Lernt man im Studium heutzutage ueberhaupt C?
Kann es sein, Du hast vor paar Monaten nach dem Rat fuer ein C Buch gefragt?
Ich habe damals C in 21 Days SAMS Verlag empfolen, das Buch wurde als
Buch fuer Anfaenger abgestuft. Sorry wenn das jmand anderer war.
> Es werden mit Sicherheit nie alle Varibeln von mystruct zugewiesen.
> Wird bei einem neuen Zeiger alle Werte auf NULL gesetzt?
Bei C mit Sicherheit nicht.
> Oder muss ich calloc statt malloc verwenden wenn ich
> sicher gehen will?
calloc macht das gleiche nur mehrfach. Also auch nicht.
> Wie kann ich mir _Elegant_ die einzelnen Zeiger holen, ich habe ca. 1580 mystruct
>Zeiger,
> wenn ich alle Daten zugewiesen sind.
struct the_struct mystruct[1580];
mystruct[100].val=0; // val von 100. mystruct Struktur auf 0 setzen
Ist natuerlich eine Verschwendung, aber als anfaenger vermeidest
Segmentation faults ( fur die Struktur, die Du oben angegeben hast ).
Verkettete Listen sind Eleganter ( )
Gruss,
Valentin Heinitz
P.S.
Buchempfehlung:
C in 21 Days SAMS Verlag :-)
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org