当询问C中常见的未定义行为时,灵魂比我提到的严格别名规则更加开明.
他们在说什么?
如果我有这样的功能:
void bla(int size) {
while(b){
char tmp[size];
......
}
}
Run Code Online (Sandbox Code Playgroud)
tmp在while循环的每次迭代中被释放,对吗?
如果我写这个函数:
void bla(int size) {
while(b){
char* tmp = alloca(size);
......
}
}
Run Code Online (Sandbox Code Playgroud)
tmp在范围结束时或功能结束时被释放?