C++之C语言存储管理

数据的存放方式

程序编写完成后,需要先装载到计算机的内核或半导体内存中,然后才能运行。计算机的程序被组织成4个逻辑段:可执行代码、静态数据、动态数据(堆)或栈。

可执行代码和静态数据存储在固定的内存位置;

动态数据需要系统动态分配内存,一般存放在堆区的内存池中;

局部数据对象、函数参数、调用函数与被调用函数的关系存放在栈区的内存池中。

堆:程序可动态分配和释放内存的自由存储空间叫栈;

int *p=(int *)malloc(20);  //分配内存

free(p);// 回收内存



栈:是一个后进先出的数据结构,当向栈中压入一个对象,则指针向下移动一个位置;

当系统弹出栈顶元素时,指针向上移动一个位置。



#define  _CRT_SECURE_NO_WARNINGS

#include   

#include



int main()

{

int *p=(int *)malloc(20);  //分配内存

free(p);// 回收内存



int *p=(int *)calloc(2, 20);//在内存中动态分配2个长度为20的连续内存空间



//将p指针指向的内存空间大小改为30

realloc(p, 30);



return 0;

}

你可能感兴趣的:(C++教程+实战项目,c++,c语言)