2013-02-17 55 views
-3

我试着使用了XCode 4.6配置仪器C编程代码:XCode Allocations不适用于C?

#include <stdlib.h> 
int main(void){ 

    char c[5] = "Hello"; 
    unsigned char *p; 
    p = (unsigned char *) malloc(sizeof(p)); 
    *p = 255; 

    return 0; 
} 

但它并没有表现出任何的分配:

Xcode 4.6 Allocations

为什么?

+3

也许它优化它呢? – cnicutar 2013-02-17 13:35:29

+0

尝试在不进行优化的情况下运行您的编译器。对于GCC和LLVM/clang,它是编译器标志“-O0”。 – bash0r 2013-02-17 13:41:36

+1

cnicutar是正确的。 C编译器会对此进行optomize,因为没有什么实际需要P来动态分配。 – Freddy 2013-02-17 13:55:26

回答

0

由于2cnicutar

问题是的XCode 4.6的分配器械正在处理程序的发布版本,因此代码被优化。

的方案是选择“调试”模式,而不是“释放”配置文件选项

enter image description here

+0

这是没有解决方案。在99%的情况下,你想分析发布版本。你的示例代码是错误的 – 2013-02-17 15:24:37