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è:
un grazie di cuore a chiunque sappia dirmi perchè si blocca.... sto usando debian etch e g++...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;
}
edit: i punti di domanda che ci sono nel codice sono degli \0

Rispondi quotando
