【问题标题】:OpenAL causing leaks in my iPhone gameOpenAL 导致我的 iPhone 游戏泄漏
【发布时间】:2010-03-27 10:17:52
【问题描述】:

我正在使用我在this post 中找到的代码将 OpenAL 集成到我的 iPhone 游戏中,但是编译器在这行代码中给了我一个错误:
unsigned char *outData = malloc(fileSize);

所以我把它改成了:
unsigned char *outData = (unsigned char*) malloc(fileSize);.

这摆脱了编译器错误,但似乎引发了两个泄漏:
Malloc 32 Bytes 0x505cb40 AudioToolbox SimAggregateDevice::CreateAggregateDevice(__CFString const*, __CFString const*, unsigned long&)


NSCFDictionary 0x505be30 64 AudioToolbox SimAggregateDevice::CreateAggregateDevice(__CFString const*, __CFString const*, unsigned long&)

这是因为我更改了 unsigned char 行吗?如果有人可以帮助我消除这些泄漏,我将不胜感激。

【问题讨论】:

    标签: iphone memory-leaks openal unsigned-char


    【解决方案1】:

    我假设您使用的是 .mm 文件而不是 .m (这是我认为编译器在没有强制转换的情况下会产生错误的唯一原因)。您所做的更改不会对内存管理产生影响,当然也不会导致泄漏。您是否在使用后释放这些数据?

    【讨论】:

    • 是的,稍后我调用 'if (outData) { free(outData);输出数据 = NULL; }' 再次使用仪器运行后,它现在给了我 10 次泄漏!其中5个同上,另外5个是:'Malloc 32 Bytes 0x531b5d0 AudioToolbox CreateDictionaryForDevice(unsigned long)'
    • 对不起,我很难过。我只能推测某些 OpenAL 资源没有被释放或关闭或其他任何东西。我对 OpenAL 的了解还不够,无法提出更多建议。
    • 还是感谢您的帮助 :),我想我还得再努力一些。如果有 OpenAL 经验的人可以帮助我,我将不胜感激。
    猜你喜欢
    • 2013-01-15
    • 2018-02-04
    • 2012-02-01
    • 2016-03-09
    • 2011-05-13
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多