C/C++程序的内存开辟

//------------ C/C++程序的内存开辟

C++程序内存分配的几个区域:

//int t = 2;

//static int r = 1;

//void test()

//{

// static e = 1;

// int n = 1;

// int arr[10] = {1,2,3,4};

// char g[] = "hello world";

// char* p = "abcd";

// int* a = (int*)malloc(sizeof(int)* 4);//函数向内存申请一块连续可用的空间

// int* b = (int*)calloc(4, sizeof(int));//为4个大小为 size(int)的元素开辟一块空间,

// //并且把空间的每个字节初始化为0。

// int* c = (b, sizeof(int) * 4);//把b调整为sizeof(int) * 4的一块空间的大小,灵活调整。

// free(a);

// free(c);

//}

//1.内核空间(此部分用户代码不能读写)

// 是计算机系统中的一个特定部分,负责执行最关键和最高优先级的任务,如操作系统内核、设备驱动程序等。

// 在操作系统中,内核空间是操作系统内核程序运行的地方,它具有最高的权限,可以直接访问和控制硬件资源。

//2. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结

//束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是

//分配的内存容量有限。 栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返

//回地址等。

//如上式代码中的:int n,char* p,free(a);(函数内部"="y右边的均存于栈区)

//3.内存映射段:mmap函数(文件映射、动态库、匿名映射)

//将内存地址映射到特定数据区域的机制。内存映射段允许程序员将某个内存区域映射到外部设备或内核空间,

// 以便在程序中读写数据

//4. 堆区(向上增长):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。分

//配方式类似于链表。

//如上式代码中的:(int*)malloc(sizeof(int)* 4);(int*)callc(4, sizeof(int));(b, sizeof(int) * 4);

//5. 数据段(也是静态区)(static)存放全局变量、静态数据。程序结束后由系统释放。

//如上式代码中的:int t = 2;static int r = 1;static r=1;

//6. 代码段:存放函数体(类成员函数和全局函数)的二进制代码。

//代码段就是程序中用于实现特定功能的代码块。它们可以是简单的变量赋值、循环、条件判断,

//也可以是复杂的数据结构和方法。总之,代码段是C语言中组织和管理代码的基本单位。

//实际上普通的局部变量是在栈区分配空间的,栈区的特点是在上面创建的变量出了作用域就销毁。

//但是被static修饰的变量存放在数据段(静态区),数据段的特点是在上面创建的变量,直到程序

//结束才销毁,所以生命周期变长。、

//如上式代码中的:"hello world";"abcd";

// 类的成员函数:

// 是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。

// 类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员。

相关推荐
宵时待雨5 分钟前
C++笔记归纳13:map & set
开发语言·数据结构·c++·笔记·算法
仰泳的熊猫5 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
罗超驿9 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
努力也学不会java10 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
菜菜小狗的学习笔记12 小时前
剑指Offer算法题(四)链表
数据结构·算法·链表
We་ct13 小时前
LeetCode 148. 排序链表:归并排序详解
前端·数据结构·算法·leetcode·链表·typescript·排序算法
咱就是说不配啊14 小时前
3.19打卡day33
数据结构·c++·算法
重生之后端学习15 小时前
287. 寻找重复数
数据结构·算法·leetcode·深度优先·图论
一只小灿灿16 小时前
六大主流编程语言数据类型底层深度解析:从硬件寄存器到内存布局、编译运行与跨平台本质(超全底层版)
数据结构
今儿敲了吗16 小时前
46| FBI树
数据结构·c++·笔记·学习·算法