f_memo () ;
でメモリ確保が失敗したときにfree(array)をやってはいけません。
arrayはNULLなため、悪ければシステム全体がクラッシュします。