>>164
jo=NULL;
とやってからループ内で1回だけ
jo = realloc( jo, size * i );
と書くんなら意味があるけどね。

size が0の時は開放のみなんだろうか?