Dalvikでのアプリのヒープは16MBに制限されているようですが(最近はもうちょっと多い?)
エミュレータ+NDKでC言語のmallocを使ってもっと多い量を確保しても、失敗しないようです。

Virtual DeviceはターゲットがAndroid2.2でMax VM application heap sizeが24になってます。
mallocでは32MB,64MBを試してどちらも正常に確保されています。

もしかしてNDK側で確保する分にはDalvikのメモリ制限を受けないんでしょうか?
実機はまだもっていないので、現在はできません。よろしくお願いします。