最近在弄个vc++的项目,可能是太久没搞vc++了,竟然发现很多东西都不是很明白了~~~~~~~~~~~~
测试了一下alloca和malloc的区别:
int i=300;
while (true){
char * kk=(char *)malloc(1024);
Sleep(1);
if(i<1){
break;
}
i--;
}
发现,在用malloc分配内存时: 资源猛涨,运行一次代码,相应的就涨多少资源
而用alloca分配资源时:
int i=300; while (true){ char * kk=(char *)alloca(1024); Sleep(1); if(i<1){ break; } i--; }
占用的资源虽然猛涨,但是只是限制在第一次执行上面的代码时会长,以后就不涨了