He visto muchas preguntas sobre eso en StackOverflow, pero leer las respuestas no lo resolvió, probablemente porque soy un novato total en la programación de C. Aquí está el código:Devolver un puntero a una matriz de caracteres en 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;
}
Se compila y obtengo un error de segmentación cuando lo ejecuto. He leído this preguntas frecuentes sobre el retorno de matrices y he intentado con la técnica "estática" que se sugiere allí, pero todavía no he podido hacer que el programa funcione. ¿Podría alguien señalar exactamente qué le pasa y qué debería estar prestando atención en el futuro?
¿Qué estás tratando de hacer? –
@snitko: ¿Dónde está el tipo de devolución de 'main()'? –