| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 871 人关注过本帖, 1 人收藏
标题:跨函数使用内存问题
取消只看楼主 加入收藏
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
结帖率:95.92%
收藏(1)
已结贴  问题点数:10 回复次数:3 
跨函数使用内存问题
#include<stdio.h>
void f(int**q)
{
    int i=5;
    *q=&i;//*q=p=&i;
}
int main(void)
{
    int *p;
    f(&p);
    printf("i=%d\n",*p);
    return 0;
}
我这样理解可以吗?为什么说这个程序语法没错,逻辑有问题?
搜索更多相关主题的帖子: return 
2016-06-16 18:17
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
回复 3楼 lanke711
你的回答真仔细,谢谢了

慢慢调试
2016-06-16 20:27
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
回复 3楼 lanke711
#include<stdio.h>
int f(int **q)
{
    int i=5;
    *q=&i;
    return  **q;//*q=p,**q=*p=i的内容;
}
int main(void)
{
    int *p;
    int temp;
    f(&p);
    temp=f(&p);//地址是受限制的十六进制数,f(&p)接受的是地址,所以类型是int
    printf("i=%d\n",temp);
    return 0;
}
跨函数使用内存.exe - 0 error(s), 0 warning(s)
我自己摸索的,你所说的用*temp=f(&p)不能通过

慢慢调试
2016-06-16 21:19
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
我太菜了,大神所说听不懂

慢慢调试
2016-06-16 23:03
快速回复:跨函数使用内存问题
数据加载中...
 
   



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

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