c - 这个双指针取消引用在这里是如何工作的
问题描述
我有这个片段:
func(int **t)
{
int q = 40;
*t = &q;
}
int main()
{
int a = 20;
int *p = &a;
func(&p);
printf("%d\n", *p);
}
该程序输出 40 ,因为在 *t = &q 之后,指针 p 指向 q 的地址而不是 a。
但是一旦我们从 func(int **t) 返回,q 不再存在,但 *p 仍然给出 40,怎么办?
解决方案
推荐阅读
- jfugue - JFugue:获取特定音阶的音符
- node.js - 开玩笑的单元测试失败,setData 似乎没有工作
- c# - System.NullReferenceException:“对象引用未设置为对象的实例。” C#
- python - 如何使用 Python 代码通过套接字接收 SIP 消息?
- c# - .NET5 - @HiddenFor(model => model.RowVersion) 缓存值?
- vba - 邮件合并上的 VBA - 添加空白页?
- protractor - 错误:在 VS 代码上运行 e2e 测试套件时,EADDRINUSE 连接 EADDRINUSE 127.0.0.1:50596
- java - 具有混合类型(长和字符串)的哈希图时,类 java.lang.Long 无法转换为类 java.lang.String 错误
- c# - How do I remove objects inside the blast radius?
- flutter - flutter blue reading characterstics error