Hello Markus,

Tuesday, November 26, 2002, 12:15:55 AM, you wrote:


MH> [...]
MH> struct the_struct *mystruct;

MH> was ist der Unterschied zu mystruct.val und mystruct->val?

�.' wird benutzt um auf Werte aus Eintr�gen einer Struktur bzw.
Union zu zugreifen.

Wenn man nun aber �ber einen Zeiger auf eine Struktur zugreifen will,
muss man - nat�rlich! - den Zeiger erst einmal dereferenzieren, und
das geht mit einem `*'.

*mystruct.val also! Oder? Nein, denn der Punkt hat eine h�here
Priorit�t als das Sternchen, es m�sste also (*mystruct).val hei�en!

Und dreimal darfst du raten, wof�r -> die Kurzform ist. ;-)
Na klar! F�r (*). -- wof�r das Ganze? Der C-Programmierer liebt eben
weniger schreiben zu m�ssen, und bis man (*) und dann noch einen .
getippt hat sind ja Ewigkeiten vergangen. Und au�erdem vermindert ->
die Fehleranf�lligkeit (wenn man es mal kapiert hat ;-))!

MH> [...]
MH> Es werden mit Sicherheit nie alle Varibeln von mystruct zugewiesen. 
MH> Wird bei einem neuen Zeiger alle Werte auf NULL gesetzt?

Ein Zeiger kann *immer* nur einen Wert haben, n�mlich eine Adresse! Bitte nichts
vertauschen! Ob dieser Wert NULL ist h�ngt ab, wo und wie der Zeiger
deklariert wird (lokale Variable sind in der Regel im Gegensatz zu
globalen und statischen undefiniert).


MH> Oder muss ich calloc statt malloc verwenden wenn ich 
MH> sicher gehen will?
MH> [...]

calloc() �berschreibt den allokierten Memory-Bereich mit Nullen, wenn
du das willst, dann ja!

-- 
cheers,
 Tobias

----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an