mallocでメモリを確保したのですが、100000000サイズになると
NULLになります。これを直す方法をご存知の方はいますでしょうか?

n_array = (max-1) / 2;
array = (char *)malloc( n_array );

↑がソースの一部です。