Unerklärlicher Segmentation Fault
-
Hallo,
kann mir jemand sagen, warum folgender Code beim Ausführen einen Segmentation Fault auslöst?
main(int ac, char *av[]) { char word[500]; char *buffer[500]; strcpy(word, "TEST"); strcpy(buffer[0],word); }
-
Sei froh, daß er das tut.
Word ist ein Array von 500 char's, buffer ist ein Array von 500 Zeigern auf char's. Wäre ärgerlich, wenn das hinauen würde.
-
^^alle 500 char* in buffer zeigen sonstwohin.
-
kann mir jemand sagen, warum folgender Code beim Ausführen einen Segmentation Fault auslöst?
Ja, wenn du mir sagen kannst, was du mit diesem Code erreichen moechtest.
-
Oh, ich dachte, dass buffer ein String-Array aus Wörtern ist. Also word soll eines von 500 Wörtern im String-Array buffer sein.
-
Dann musst du fuer die 500 Worter, auf die in buffer durch ein char* gezeigt wird, vorher Speicher reservieren.
-
OK
buffer[0] = calloc(strlen(word), sizeof(char));
Löst das Problömchen.
-
Max222 schrieb:
OK
buffer[0] = calloc(strlen(word), sizeof(char));
Löst das Problömchen.
'strlen(word)+1', wenn schon (+1 byte für die 0 am ende). und das 'sizeof(char)' kannste dir auch sparen.