浅笑_0657 level
获赞
8
粉丝
0
关注
1
看过 TA
1
兰州大学
2021
Java
IP属地:未知
暂未填写个人简介
私信
关注
2022-01-23 16:28
兰州大学 Java
0 点赞 评论 收藏
分享
2018-06-28 14:11
已编辑
兰州大学 Java
请分析下面代码运行是否有问题,如果有问题请改正 #include <iostream> using namespace std; char* GetMemory(void) { char p[] = "Hello world"; return p; } int main() { char* str = GetMemory(); cout<<str; return 0; } 测试结果:
BewareMyPower:GetMemory函数的变量p是数组,在栈上,函数调用结束时会自动回收。所以要么在GetMemory函数内动态申请内存,然后由调用者来释放。要么在数组p定义为static的,在初始化之后一直存在直到程序运行完毕。 不过栈上的回收也只是移动栈指针而已,所以数据还在,只是可能被新的栈上数据覆盖。我在自己机器上实验发现GetMemory返回的是NULL(0x0),不知道是C标准规定的还是gcc优化的。
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务