可用内存在GCC构建上运行良好,但在MSVC上运行不正常

时间:2012-11-04 23:54:48

标签: c++ gcc memory visual-c++ free

我最近尝试将我的C ++应用程序从Mac(gcc)迁移到Windows(MSVC2010)。但是我的代码中有两行导致崩溃:

if (block != NULL)
    free(block);

这两行在Mac OS上的gcc下完美运行,但在Windows上崩溃。如果我在Visual Studio中对它们进行了评论,则会导致内存泄漏。 “block”分配为:

uchar* block = (uchar*)malloc(_bytes_per_pixel * _width * _height);
memset(block, 0xff, _bytes_per_pixel * _width * _height);

然后将其传递给另一个填充其值的库中的API函数。

我想知道什么可能导致free()崩溃,以及为什么它只会在MSVC(Windows)下崩溃但不会崩溃(Mac OS)。我是c ++和stackoverflow的新手,所以如果有人能提供帮助我会非常感激。

0 个答案:

没有答案