Folgendes Programm:
Dabei geht *bla1=0 ohne Probleme, aber *bla2=0 gibt ein Segmentation fault.Code:#include <stdio.h> int main() { char bla1[4]="bla"; printf("bla1...\n"); *bla1=0; //geht char *bla2="bla"; printf("bla2...\n"); *bla2=0; //geht nicht }
Ich vermute, dass die Daten in bla2 irgendwie auf readonly gesetzt sind oder so...
Aber warum wird zwischen bla1 und bla2 überhaupt ein Unterschied gemacht? Eigentlich sind Arrays und Zeiger intern doch das gleiche!?
Wird davon ausgegangen, dass man einen so definierten String nie ändern will?
Lesezeichen