最近、C++ アプリケーションを Mac (gcc) から Windows (MSVC2010) に移行しようとしています。しかし、私のコードの 2 行がクラッシュを引き起こしています。
if (block != NULL)
free(block);
これらの 2 行は、Mac OS の gcc では問題なく動作しますが、Windows ではクラッシュします。Visual Studio でコメントすると、メモリ リークが発生します。「ブロック」は次のように割り当てられます。
uchar* block = (uchar*)malloc(_bytes_per_pixel * _width * _height);
memset(block, 0xff, _bytes_per_pixel * _width * _height);
その後、その値を入力する別のライブラリから API 関数に渡されます。
free() がクラッシュする原因と、gcc (Mac OS) ではなく MSVC (Windows) でのみクラッシュする理由を知りたいです。私はc ++とstackoverflowが初めてなので、誰かが助けてくれれば幸いです。