2013-02-17 56 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