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,所以没有分配块。但是我的大案例中的问题(太大了)仍然存在。我会尝试一些其他方法来显示问题。 –