标题:关于指针的一个小问题
只看楼主
li凡
Rank: 2
等 级:论坛游民
帖 子:13
专家分:27
注 册:2018-10-7
结帖率:100%
已结贴  问题点数:20 回复次数:3 
关于指针的一个小问题
# include <stdio.h>
void f(int **q)
{
int i=5;
*q=&i;
}
int main(void)
{
int *p;  
f(&p);
printf("*p=%d\n",*p);
return 0;
}
//在本函数中,运行f();函数以后i不是已经释放掉了吗?为什么运行后还能输出*p=5?
搜索更多相关主题的帖子: void 运行 函数 int 指针 
2020-05-01 14:30
qq2890190044
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2020-5-1
得分:5 
原来的数据不会被清0,你读到的是之前留下来的数据

[此贴子已经被作者于2020-5-1 17:15编辑过]

2020-05-01 15:37
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:15 
下课了老师还留下一黑板字儿呢。
收到的鲜花
  • 纯蓝之刃2021-08-10 16:20 送鲜花  5朵   附言:精辟

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-01 17:24
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
得分:0 
回复 3楼 forever74
老哥总是这么形象呀!

借用一下侯捷的话:勿在浮沙筑高台。
2020-05-02 09:22
自由而无用
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:61
专家分:1456
注 册:2021-8-9
得分:0 
eg:
line 9 &p = 0x12ff9c; p = 0xcccccccc;
line 2 &q = 0x12ff94; q = &p = 0x12ff9c;
line 4 &i = 0x12ff90;
line 5 *q = p = &i = 0x12ff90;
line 11 *p = i = 5;
---------------------------------------------
# include <stdio.h>

void f(int **q)
{
    int i=5;
   
    *q=&i;
}

void rw_stack(void)
{
    int a[] = {10,11,12,13,14,18};
}

int main(void)
{
    int *p = (int *)&main;
   
    printf("*p=%x\n",*p);
   
    f(&p);
   
    printf("*p=%d\n",*p);
   
    rw_stack();
   
    printf("*p=%d\n",*p);
   
    return 0;
}
2021-08-10 14:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501360-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.074966 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved