今天在敲代码的时候,在一个函数中定义了局部数组变量,并在return的时候返回了这个局部数组变量的地址,于是乎出现warning:

这是个蛮愚蠢的错误,我把局部变量的地址作为返回,但是局部数组变量是位于stack区的,函数结束后这个地址中的数据将失去意义; 这种情况怎么办呢,可以被局部变量数组添加static即可;
我们平时经常会在函数中定义变量并返回这个变量,但注意,返回的是这个变量的值!
那么这个值是存放在哪里的呢?
C语言的机制是将return的值存放在eax寄存器中,系统再将eax存放的值再传给接收者;
错误:address of stack memory associated with local variable ‘res‘ returned
最新推荐文章于 2024-09-19 19:47:15 发布
本文讨论了在C语言中,从函数返回局部数组地址的问题及解决方法。解释了局部数组位于stack区,函数结束后该地址数据将失去意义的现象,并介绍了通过添加static关键字来修正此问题的技巧。
1283

被折叠的 条评论
为什么被折叠?



