Я видел много вопросов по этому поводу в StackOverflow, но чтение ответов не прояснило это для меня, вероятно, потому, что я новичок в программировании на C. Вот код:Вернуть указатель на массив символов в C
#include <stdio.h>
char* squeeze(char s[], char c);
main()
{
printf("%s", squeeze("hello", 'o'));
}
char* squeeze(char s[], char c)
{
int i, j;
for(i = j = 0; s[i] != '\0'; i++)
if(s[i] != c)
s[j++] = s[i];
s[j] = '\0';
return s;
}
Он компилируется, и я получаю ошибку сегментации, когда я запускаю его. Я прочитал this о возвращении массивов и попробовал «статическую» технику, которая предлагается там, но все еще не могла заставить программу работать. Может ли кто-нибудь указать на то, что с ним не так, и что я должен уделять в будущем?
Что вы пытаетесь сделать? –
@snitko: Где тип возврата 'main()'? –