Ho visto un sacco di domande su StackOverflow, ma leggere le risposte non lo ha chiarito, probabilmente perché sono un newbie totale nella programmazione in C. Ecco il codice:Restituisce un puntatore a un array di caratteri in 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;
}
Compilare e ottengo un errore di segmentazione quando lo eseguo. Ho letto this faq su come restituire gli array e ho provato la tecnica "statica" suggerita da lì, ma ancora non riuscivo a far funzionare il programma. Qualcuno potrebbe indicare esattamente cosa c'è che non va e cosa dovrei prestare attenzione in futuro?
Che cosa stai cercando di fare? –
@snitko: dov'è il tipo di ritorno di 'main()'? –