Вам нужно #include <string.h>
, чтобы получить правильное определение для strlen()
.
Неявные объявления - ужасная ошибка прошлых лет.
Всегда компилируйте с gcc -Wall -Werror
.
Кроме того, returnStrings
является указателем NULL, и вы никогда не выделяете память, а пытаетесь разыменовать ее.
Кроме того, это неверно:
returnStrings[sizeof(returnStrings)/sizeof(returnStrings[0])]
Вероятно, вы искали в Google запрос «C получить размер массива» и применили этот шаблон, но проигнорировали предупреждение, в котором говорилось что-то вроде «Это работает только для массивов , но не указателей. Если вы используете его для указателя, он будет скомпилирован, но даст неверные результаты. "
Кроме того, это неверно:
... += str[i]
Вы не можете добавить символ к «строка» в C с помощью оператора +=
. Это будет управлять указателем, что совсем не то, что вы намереваетесь.