Memory allocated with alloca gets freed at end of function or at end of scope?

后端 未结 3 641
闹比i
闹比i 2021-01-17 16:36

If I have a function like this:

void bla(int size) {
    while(b){
        char tmp[size];
        ......
    }
}

tmp gets freed at each it

3条回答
  •  死守一世寂寞
    2021-01-17 16:55

    alloca allocates on the stack and has no knowledge about scopes, so it gets freed after leaving the stack frame (= after leaving the function).

提交回复
热议问题