On Wed, Aug 15, 2001 at 04:07:16PM +0200, Matthias Petermann wrote:
Ja, jetzt klappts... Danke nochmal.
Eine Kleinigkeit beschäftigt mich noch:
bis jetzt dachte ich, dass mit "struct list *menu[20]" - wie bereits vorhin geschrieben - Platz für '21' Zeiger reserviert wird (0-20). Allerdings löst irgend etwas um malloc auf
0 - 19 -> das sind 20 Elemente.
menu[20] einen "Segmentation fault" aus. Das Programm hab ich noch einmal angehängt. Die Variable "durchlaeufe" ist auf 20 gesetzt, d.H. mit der folgenden Schleife werden menu[0]-menu[19] alloziert. Setze ich die Variable auf '20' läuft das Programm
Idiomatisch ist etwas in der Art:
#define SZ 20 int iv[SZ];
int i;
for (i = 0; i < SZ; ++i) DO SOMETHING;
gegen den Baum, weil es versucht menu[21] zu benutzen. Was bedeutet "struct list *menu[20]" wirklich? Werden 20 Zeiger reserviert oder 21? Wenn 21, dann müsste "struct list *menu[0]" Platz für genau einen Zeiger reservieren, oder?
Eben. Und darum sind's 20 und nicht 21.
Best regards from currently Schwerin/Germany Viele Gruesse aus Schwerin/Mecklenburg-Vorpommern Heiko Schlittermann