つーか、下手に技巧かまして初期に配列確保して動かないコード書くぐらいなら
単品 malloc() を n回呼び出し+途中の追加も単品 malloc() のほうがマシじゃね?