在返回指针类型的函数中定义自动变量,然后返回这个变量的值给主函数中某相应指针,则会发生错误。我想问的是:
在调用完一个函数之后,编译器是怎么样撤销其自动变量的,
是断开变量名与内存地址的联系或是断开变量名与内存的联系然后再撤销原来内存的内容呢?
总而言之,撤销某一变量在内存中的实际动作到底是什么?
"pop操作把数据弹出"
是怎么样把数据弹出的?
"但是有些编译器,在子函数退出的时候,把弹出栈的内容都填为0。那么当你访问地址为0的变量的时候,将会弹出“非法访问”的对话框,然后强迫关闭该程序。"
那个是 内容和地址都为0吗?
为什么说是“数据向上移动"呢?
我在课本上看到的只是指向栈顶的指针在移动啊
是不是就是说:撤消一个变量就是在栈区弹出这个变量所对应的数据,此时变量所对应的地址及在该地址中所存内容都被取消,
而当被调用函数结束后,所有该函数的局部变量都被撤消