バイナリファイルをchar配列にロードしようとしています。私のコードは:私はprogram.exe has stopped working
を受け取るので、私は1Mより大きいものにMAX_FILE_SIZE
を設定するまで300MBのバイナリファイルをchar配列に読み込みます
int MAX_FILE_SIZE = 1 000 000
FILE *f;
char buffer[MAX_FILE_SIZE];
f = fopen("sample.bin", "rb"); //sample.bin is 300MB binary file
if (f)
n = fread(buffer, sizeof(char), MAX_FILE_SIZE, f);
それは動作します。私がメモリにsample.bin
をすべてロードすることを考えると、私はMAX_FILE_SIZE
を〜300Mに設定するべきです。どうやってやるの?
これはテスト可能な例はありませんが、私はあなたがstackspaceを使い果たし疑い。 – EOF
いくつかのヒープ割り当てメモリ(例えば、 'malloc')を使用します。 –
バッファを静的にしようとしましたか?これは、スタックの代わりにデータセグメント内にスペースを割り当てます。 –