<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:12pt"><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; ">Se trata de una función a la que se le envía como argumento una frase y sirviéndome de la función "strtok" debe devolver, en un array (char **), cada una de las palabras que la componen. Sin embargo, se produce un error en los dos primeros elementos del array.</div><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; "><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; ">Os transcribo el código (indicando al final el error que se produce)</div><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; "><br></div><div><font face="arial, helvetica, sans-serif">char **split(const char *palabra)</font></div><div><font face="arial, helvetica, sans-serif">{</font></div><div><font face="arial, helvetica,
 sans-serif"><span class="Apple-tab-span" style="white-space:pre">    </span>char *s   = NULL;</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">        </span>char *tmp = NULL;</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">     </span>char **p  = NULL;</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">        </span>int count = 0;  //contador inicial de elementos del array (char **)</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">      </span>s = (char *)malloc( 1 + strlen(palabra) );</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">    </span>strcpy(s, palabra);</font></div><div><font
 face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">       </span>tmp = strtok(s, " ");</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">       </span>while( NULL != tmp )</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">  </span>{</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">             </span>p = (char **)realloc(p, sizeof(char *) * (count + 1) );  // un nuevo elemento para el array</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">              </span>p[count] = tmp;   // asigno al elemento la palabra obtenida por "strtok"</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span"
 style="white-space:pre">          </span>tmp = strtok(NULL, " ");  // llamo a la función</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">                </span>count++;   // incremento el contador</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">     </span>}</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">     </span>free(s);</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">      </span>s = 0;</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">        </span>// el último elemento del array debe ser nulo</font></div><div><font face="arial,
 helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre"> </span>p = (char **)realloc(p, sizeof(char *) * (count + 1) );</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">       </span>p[count] = '\0';</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">      </span>return p;</font></div><div><font face="arial, helvetica, sans-serif">}</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">int main(const int argc, char * argv[])</font></div><div><font face="arial, helvetica, sans-serif">{</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">  </span>// llamamos a la
 función</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">   </span>char **p = split("Lo que el viento se llevó");</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">      </span>// recorremos "p" para mostrar cada una de las palabra</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">      </span>while( *p != NULL )</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">   </span>{</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">             </span>printf("%s\n", *p);</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">         </span>++p;</font></div><div><font
 face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">       </span>}</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font face="arial, helvetica, sans-serif">     </font></span></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">      </span>/*</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">    </span>  ¡LO QUE SALE POR PANTALLA! ¡ERROR!</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">     </span>  </font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">       </span>  [un espacio vacío en lugar de "Lo"]</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">  </span>  [otro espacio vacío en lugar de
 "que"]</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">  </span>  el</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">     </span>  viento</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre"> </span>  se</font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">     </span>  llevó</font></div><div><font face="arial, helvetica, sans-serif"> */</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span class="Apple-tab-span" style="white-space:pre">    </span>return 0;</font></div><div><font face="arial, helvetica, sans-serif">}</font><font face="arial, helvetica, sans-serif" size="3"> </font></div><div style="font-family: arial,
 helvetica, sans-serif; font-size: 12pt; "><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; "><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; ">Me podéis aclarar dónde falla mi código. ¡Gracias !</div></div></body></html>