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