在函数中返回指向calloced int的指针和返回初始化int的地址有什么区别?
我对这两种情况之间的差异感兴趣:在函数中返回指向calloced int的指针和返回初始化int的地址有什么区别?,c,C,我对这两种情况之间的差异感兴趣: int *function() { int i = 5; return &i; } 及 有区别吗?如果是这样,有人能解释一下背景中发生了什么吗?是的,有区别。在第一个场景中,整数i被分配到堆栈上,这意味着当函数返回时它将被重用。在第二种情况下,内存是在堆上分配的,在函数调用之外不会被覆盖 int *function() { int *i = calloc(1, sizeof(int)); *i = 5; re
int *function() {
int i = 5;
return &i;
}
及
有区别吗?如果是这样,有人能解释一下背景中发生了什么吗?是的,有区别。在第一个场景中,整数i被分配到堆栈上,这意味着当函数返回时它将被重用。在第二种情况下,内存是在堆上分配的,在函数调用之外不会被覆盖
int *function() {
int *i = calloc(1, sizeof(int));
*i = 5;
return i;
}