1
我有一個非常簡單的命令行工具在Xcode:Xcode中,儀器儀表,分配,命令行應用程序,不登記免費()
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int main(int argc, const char * argv[])
{
void *p = calloc(32, 1);
assert(p);
free(p);
return 0;
}
當我運行儀器 - >分配它顯示了一個生活街區。 free
似乎被忽略。
在過去的日子裏,我記得你實際上仍然可以使用最後一個空閒塊。所以我試過這個:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int main(int argc, const char * argv[])
{
void *p = calloc(32, 1);
assert(p);
free(p);
void *q = calloc(32, 1);
assert(q);
free(q);
return 0;
}
現在,儀器 - >分配顯示沒有生命塊。這似乎是正確的。
任何人都可以解釋或重現我在第一個程序中看到的問題嗎?
我正在使用Xcode 4.1.1
謝謝。
*旁註:*總是使用最新的Xcode版本 – Raptor
非常有趣的是,Xcode 5優化了alloc/free,所以沒有分配塊。但是我的大案例中的問題(太大了)仍然存在。我會嘗試一些其他方法來顯示問題。 –