データのダンプをするプログラムで、
ループ処理の中で呼び出されるある関数の中で10Mくらいのサイズの変数を使いたいのですが
mallocしても、char data[10000000]="";としても、
数回の実行でセグメンテーション違反が出てしまいます。
mallocの場合は一度ずつフリーしているし、char dataで用意した場合は一度実行したらreturnでブロックの外に行っているので
メモリ領域は解放されているはずなのですが・・。
取得するメモリ領域を小さくするとループされる回数が増える(セグメンテーション違反のタイミングが遅れる)から
メモリ不足が原因だと思うのですが、マシンの空きメモリは60Mくらいあって、最大10Mのメモリ取得なら問題無いはずだし。
どんな原因が考えられますか?