Am Dienstag, 26. November 2002 08:10 schrieb Valentin Heinitz:
> Hallo,
> sowas aergerliches, die Antwort war zur Haelfte geschrieben, und kmail
> schmierte ab.
> also nochmal..
mir mit Kmail noch nie passiert.
>
> > 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 ->
Aha !
> 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?
ich habe noch die Pascal Vorlesesung geh�rt ;-)
Als dann die den mit der neuen PO auf C umgestllt haben gabs
erst mal kein Script daf�r. C gibts ja auch noch nicht so lange *LOL*.
Prinzipiell find ich aus auch besser mit einer !00 Sprache anzufangen.
Man sollte trozdem mal die Unterschiede und Beispiele zu OO darstellen.
>
> 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.
Kann sein , ich habe mir Helmut Herolds "C Kompaktreferenz"
gekauft und "Algorihmen in C" ausgeliehen.
Hat mir auch viel gebracht.
Mit der Frage wollte ich mich auch eher absichern.
Da hilft eine pr�gnante Antwort mehr als B�cher w�lzen.
>
> > 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.
ich dachte calloc steht f�r : _CLEAR MEMORY ALLOCATION_
> > 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 ).
Wieso Verschwendung ??
> Verkettete Listen sind Eleganter ( )
Ich bin mir nicht sicher ob die hier sinvoll w�ren.
Zumindest benutze ich keine rekursieve Aufrufe.
Thx f�r Deine Tips
Gru� Markus
-----------------------------------------------------------------------------
Markus Hahn
Emser Stra�e 69a
65195 Wiesbaden
Microsoft merges technologies:
Windows CE + Windows ME + Windows NT = Windows CEMENT
-----------------------------------------------------------------------------
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org