C++语言内存分配研究
内存分配策略解清楚程序设计当就极易引起运行结果异常难捕获内存分配所引起错误本程序输出结果随机值34栈空间连续分配所引起main函数中首先调用fun函数时fun1代码行地址入栈接着fun中局部变量x入栈fun调用结束后把x内存地址值返回给main函数中p指针时栈中x出栈接着main中调用fun1函数时fun1中a进行栈内存分配其分配栈空间正好fun函数中x变量所释放内存内存赋值4后回到主函数时栈空间a变量内存被释放时p指针从改变时程序其语句代码或变量需分配栈空间因p指针所指栈空间值被覆盖保留后次所赋值4故程序后输出值4因掌握内存中存储空间分配情况原难分析其异常运行结果防止让指向常量指针所指常量进行值改变解决办法把p声明成常量指针const char *p保证能改变所指常量值若试图指针改变常量值编译检查时将报错致于上述程序段发生运行时错误2.3 堆区内存分配堆中内存匿名堆内存进行访问只能指针进行访问指针访问堆内存时定注意防止内存泄露内存泄露指程序从堆中分配内存块内存释放后存放其数据p
<<上一页 下一页>>
广州市越秀区图书馆版权所有。
联系电话:020-87673002
本站访问人数: