Научитесь использовать valgrind. Это один из самых полезных инструментов для диагностики ошибок такого рода.
$valgrind ./a.out "HOLA MUNDO COMO s"
==4949== Memcheck, a memory error detector
==4949== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==4949== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==4949== Command: ./a.out HOLA\ MUNDO\ COMO\ s
==4949==
Cadena: 'HOLA MUNDO COMO s'
==4949== Invalid write of size 8
==4949== at 0x40070B: split (a.c:20)
==4949== by 0x40076B: main (a.c:32)
==4949== Address 0x518a098 is 0 bytes after a block of size 8 alloc'd
==4949== at 0x4C245E2: realloc (vg_replace_malloc.c:525)
==4949== by 0x4006DC: split (a.c:17)
==4949== by 0x40076B: main (a.c:32)
==4949==
----------------TOKENS------------
==4949== Conditional jump or move depends on uninitialised value(s)
==4949== at 0x4007BF: main (a.c:35)
это говорит о том, что в строке 20 вы пытались написать указатель после конца таблицы.
что верно: вы выделяете таблицу размера i + 1, затем увеличиваете i и получаете доступ к таблице [i], которая не выделяется. Например, при первом входе в цикл вы перераспределяете таблицу из 1 символа * (чтобы не увеличивать ее) и получаете доступ ко второму элементу таблицы. при втором входе в цикл вы увеличиваете размер массива до 2 и получаете доступ к третьему элементу /
вторая ошибка в строке 35 означает, что в вашей таблице MILISTA есть некоторые части, которые не инициализированы из-за неправильного поведения первого цикла.