c程序中内存四区分别是什么
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍了c程序中内存四区分别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。C程序中操作系统常常把代码分为四个区:堆、栈
千家信息网最后更新 2024年11月22日c程序中内存四区分别是什么
这篇文章主要介绍了c程序中内存四区分别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
C程序中操作系统常常把代码分为四个区:堆、栈、全局区、代码区。
堆(heap):一般由程序员申请分配和释放空间。
栈区(stack):由操作系统自动分配和释放空间,存放函数的参数值、局部变量等。
全局区(global):全局区又细分为 未初始化区、初始化区、字符常量区。未初始化区存放全局变量和静态变量在一块区域,初始化的全局变量和静态变量同在相邻的另一块区域,程序结束后由操作系统释放。
代码区(code):存放函数体的二进制代码。
c程序的内存四区主要作用是限制变量的作用域和生命周期,方便函数调用。
例如:
char get_str()
{
char str[] = "asdaf";
printf("str = %d,&str = %d",sizeof(str),sizeof(&str));
return str;
}
int main(int argc, char argv[])
{
QCoreApplication a(argc, argv);
char *b = NULL;b = get_str();printf("b = %s",b);return a.exec();
}
打印出来的b应该是不确定的,因为b指向的内存已经被释放掉了。首先字符串"asdaf"是存储在全局区,在程序结束运行后释放内存,数组str[] 在栈区,get_str()函数结束运行后内存被释放。所以b指向的str 的内存已经被释放了,所以是不确定的。
感谢你能够认真阅读完这篇文章,希望小编分享的"c程序中内存四区分别是什么"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
内存
程序
全局
变量
代码
函数
篇文章
四区
操作系统
系统
作用
区域
字符
指向
空间
静态
分配
运行
二进制
价值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2021年小规模软件开发税点
android连接服务器工具
软件开发软件设计是什么专业
口袋妖怪xy服务器
淄博服务器收费
安防网络安全黑板报
湖南数据网络技术设计
邯郸app软件开发靠谱吗
网络攻防和网络安全
云服务器能用wps吗
千兆以太网网络技术特点
华为官网寄修服务器
香港服务器 访问速度
重入数据库
软件开发专业是干嘛的
文件sql数据库中
刀片服务器怎么关电源
松江区质量软件开发管理
网络安全第一次会议
服务器管理软件 开源
饥荒服务器怎么添加新mod
甜甜的小说软件开发
网络安全领域的分析报告
宁德市企搜网络技术有限公司
伤害鉴定软件开发
无线管理服务器在哪
广东电话软件开发联系方式
石家庄优势上位机软件开发
软件开发最新技术分享网站
关于餐饮订单数据库