Salve, ho scritto una funzione che dovrebbe prendere in input una stringa e dare in output un array di stringhe contenenti ognuna una parola della stringa data. Ho scritto dovrebbe perche il programma compila ma poi dice segmentation fault.
con il debugger ho localizzato il probema: il programma si blocca quando tento di assegnare un valore a out cioè:
Codice PHP:
char** parolizza(char* frase)
{
char** out = (char**) malloc(sizeof(char)*(strlen(frase)+1));
int cont = 0;
int a = 0;
for (int i = 0; frase[i] != '\0'; i++)
{
if (frase[i] == ' ' || frase[i] == '\n')
{
if (a == 0) continue;
out[cont][a] = '\0'; // <- QUI
cont++;
a = 0;
}
else
{
out[cont][a] = frase[i]; // <- QUI
a++;
}
}
cont++;
out[cont][0] = '\0'; // <- E QUI
return out;
}
un grazie di cuore a chiunque sappia dirmi perchè si blocca.... sto usando debian etch e g++...
edit: i punti di domanda che ci sono nel codice sono degli \0