c - 将指向局部变量的指针传递给函数 : is it safe?

标签 c pointers stack

例如:

void func1(){
    int i = 123;
    func2(&i);
}
void func2(int *a){
    *a = 456;
}

func1 调用 func2 时,一个指向局部变量的指针被传递给 func2 -- 该指针指向堆栈。这对 C 语言的规则安全吗?

谢谢。

最佳答案

i 的作用域是 func1,它比对 func2 的调用更有效。所以它是绝对安全的。

关于c - 将指向局部变量的指针传递给函数 : is it safe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28557044/

相关文章:

c - 当第一个指针被释放时,指向另一个指针的指针会发生什么?

assembly - 为什么在此函数代码的序言中从堆栈指针中减去 0x20?

java - 堆栈集合、Push 与 addElement

使用 void 函数创建 POSIX 线程?

c - 在另一个发行版中运行 C 可执行文件

python - pythonapi.PyObject_GC_UnTrack 返回什么?

c - 如何检查 void* 指针是否可以安全地转换为其他内容?

c - 为什么 "INT_MAX * INT_MAX"乘积给1?

c++ - 链表 pop_back 实现忽略指向 nullptr 的指针

python-3.x - 单调堆栈和队列。定义和例子