g++ segmentation fault
Thomas Balls-Thies
thomas.balls-thies at uni-bielefeld.de
Wed Apr 26 15:45:54 CEST 2000
Dietmar Guhe wrote:
>
> Also:
>
> char *a;
> a[2]='2';
>
> macht folgendes. a ist ein Pointer auf ein Feld von Charackter's. D.h.
> noch nicht, das die Stelle auf die a zeigt auch frei ist. Darum muss sich
> der Programmierer schon noch kuemmern. Ein
>
> char *a; *a = '2';
>
> gibt also eine Segmentation fault, weil bei a kein Platz ist.
>
> Erreichen kann man das z.B. durch
>
> char a[5];
>
> Damit werden die Speicherstelle a, a+1, ... a+4 fuer das laufende Programm
> reserviert. :-) und jetzt ist auch ein
>
> a[2] = '2';
>
> moeglich. Hier wird die Speicherstelle a genommen, um 2 erhoeht und an die
> Stelle dann der ascii-wert von 2 geschrieben. (Stichwort:
> Pointerarithmetik).
>
> Alles klar?
>
Schon klarer. Mit char a[5]; läuft das Programm jetzt.
Vielen Dank für Eure Antworten
Thomas
-
Hinweise zur Benutzung dieser (und anderer Mailing-Listen) bitte beachten:
--> http://lug-owl.de/mailinglist_hints.html <--
More information about the Linux
mailing list