C: array als rückgabe wert eine funktion
ich habe Follgendes problem:
ich möchte das eine funktion ein char array, dessen Grösse ich nicht kenne, zurückgibt.
ich habe also vollgendes programm:
Code:
char *testArray(){
char *a = "asdf";
return a;
}
main() {
char *b = testArray();
printf("%s",b);
}
wenn ich nun aber diesen code schreibe, und das muss ich:
Code:
char *testArray(){
char *a = {'a','s','d','f','\0'};
return a;
}
main() {
char *b = testArray();
printf("%s",b);
}
habe ich zum einen diese compile warnings:
Code:
hello.c: In function `testArray':
hello.c:55: warning: initialization makes pointer from integer without a cast
hello.c:55: warning: excess elements in scalar initializer
hello.c:55: warning: (near initialization for `a')
hello.c:55: warning: excess elements in scalar initializer
hello.c:55: warning: (near initialization for `a')
hello.c:55: warning: excess elements in scalar initializer
hello.c:55: warning: (near initialization for `a')
und beim ausführen ein Segmentation fault. Warum? wie kann ich machen das es funktioniert?