如果我有这样的功能:分配alloca的内存在函数结束或范围结束时被释放?
void bla(int size) {
while(b){
char tmp[size];
......
}
}
TMP得到的,而每次循环中解脱出来,对不对?
如果我写这个函数:
void bla(int size) {
while(b){
char* tmp = alloca(size);
......
}
}
TMP得到在范围年底或功能结束中解脱出来?
或者使用VLA而不是'alloca'。实际上,这是VLA和'alloca'之间的主要区别 - 自动数组的范围是VLA的块范围和''alloca'的函数范围。 – 2011-03-23 18:13:46