由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C/C++函数调用和栈内存
相关主题
这个函数有问题吗?array和pointer在作为函数返回时有啥区别 (C)
求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)func调用结束时出错
简单的c code问题Help needed on coding for Fibonacci series
请教一道C语言的题目请教一个C语言的面试题
C++里,Base Class如何调用Derived Class的method呼叫THRUST等C语言牛牛,菜鸟级C语言指针问题
[合集] 这段C++程序哪种写法是正确的大家看看这道C语言题是怎么回事?
菜鸟请教什么类型的项目需要linux下面的编程数组问题
解释一下吧Re: C语言的前途大家帮我看看C文件输入函数fprintf的问题
相关话题的讨论汇总
话题: fun1话题: int话题: return话题: fun2话题: 内存
进入Programming版参与讨论
1 (共1页)
l*******h
发帖数: 3
1
这几天学C语言学晕了,都因是看内存管理变量分配的问题.现在看RETURN语句都不顺眼.
比如下面第一个CODE,因为B指针指向栈内存,离开fun2()就失效,所以返回main()的结果
不正确.
int *fun2(void)
{
int b=2;
return &b;
}
main()
{
int *b1=fun2();
printf(“%\n”, *b1);
}
那下面的CODE就对了吗? 变量b在fun1()子程序里不也是在栈内存吗?它离开fun1()子程
序不也无效了吗?怎能指望返回MAIN正确的值呢? RETURN 这个命令是怎么和把什么返回
主函数的?
int fun1(void)
{
int b=2;
return b;
}
main()
{
int b1=fun1();
printf(“%\n”, b1);
}
b********n
发帖数: 609
2
faint,你还是继续看书吧。

眼.

【在 l*******h 的大作中提到】
: 这几天学C语言学晕了,都因是看内存管理变量分配的问题.现在看RETURN语句都不顺眼.
: 比如下面第一个CODE,因为B指针指向栈内存,离开fun2()就失效,所以返回main()的结果
: 不正确.
: int *fun2(void)
: {
: int b=2;
: return &b;
: }
: main()
: {

l*******h
发帖数: 3
3
能给个说法么?书已经看不下去了.
b********n
发帖数: 609
4
第二个function是return value,就是先使用然后local variable才被处理掉了。而第
一个你是想返回local variable的地址,然后通过地址找值,当然不行。
就好比一张纸上写个数字,先给你看一眼再撕掉当然可以。可如果先撕纸你还能看么?

【在 l*******h 的大作中提到】
: 能给个说法么?书已经看不下去了.
l*******h
发帖数: 3
5
THANKS!

【在 b********n 的大作中提到】
: 第二个function是return value,就是先使用然后local variable才被处理掉了。而第
: 一个你是想返回local variable的地址,然后通过地址找值,当然不行。
: 就好比一张纸上写个数字,先给你看一眼再撕掉当然可以。可如果先撕纸你还能看么?

1 (共1页)
进入Programming版参与讨论
相关主题
大家帮我看看C文件输入函数fprintf的问题C++里,Base Class如何调用Derived Class的method
c++ 问题 (转载)[合集] 这段C++程序哪种写法是正确的
关于在C中定义常量菜鸟请教什么类型的项目需要linux下面的编程
C 里面的 makecontext(&a, (void*)&function1, 0);解释一下吧Re: C语言的前途
这个函数有问题吗?array和pointer在作为函数返回时有啥区别 (C)
求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)func调用结束时出错
简单的c code问题Help needed on coding for Fibonacci series
请教一道C语言的题目请教一个C语言的面试题
相关话题的讨论汇总
话题: fun1话题: int话题: return话题: fun2话题: 内存