El problema viene cuando intento copiar manualmente caracteres en los arrays de punteros. En el siguiente ejemplo:
Código
Si, por ejemplo, guardo desde el teclado "hola que tal" en string, en palabras[0] no sólo no se copia "hola", sino basura (strlen me dice que hay 24 caracteres en total). Si compruebo las vueltas que ha dado el bucle, efectivamente son 4 , el número de letras, y además añado el '\0' al final. Funciona mal reserve el espacio que reserve con malloc.
void copiarPalabras(char *string, char *palabras[]); { int i = 0; //Para las primeras 10 letras, por ejemplo while( *(string+ i) != ' ' ) //Copiamos la primera palabra de la frase { *(palabras[0] + i) = *(string+ i); i++; } palabras[i] = '\0'; }
PD: con calloc en lugar de malloc sí funciona correctamente, pero quiero saber qué es lo que hago mal en esa función como está.
Gracias y saludos.