当前位置: 首页 > news >正文

做网站的公司哪家强小广告

做网站的公司哪家强,小广告,江苏省政府网站集约化建设,婚恋网站建设内存管理 C与C的内存分布C语言中动态内存管理方式回顾C内存管理的方式 C与C的内存分布 我们学习C语言时就知道,储存不同的变量计算机会相应分配不同区块的内存。那为什么要把内存化为不同的区域呢?实质上是为了方便管理 下面我们来看看下面一道例题&…

内存管理

  • C与C++的内存分布
  • C语言中动态内存管理方式回顾
  • C++内存管理的方式

C与C++的内存分布

我们学习C语言时就知道,储存不同的变量计算机会相应分配不同区块的内存。那为什么要把内存化为不同的区域呢?实质上是为了方便管理
下面我们来看看下面一道例题,看看C语言阶段的内存管理学习的怎么样?

int globalVar = 1;
static int staticGlobalVar = 1;
void Test()
{
static int staticVar = 1;
int localVar = 1;
int num1[10] = { 1, 2, 3, 4 };
char char2[] = "abcd";
const char* pChar3 = "abcd";
int* ptr1 = (int*)malloc(sizeof(int) * 4);
int* ptr2 = (int*)calloc(4, sizeof(int));
int* ptr3 = (int*)realloc(ptr2, sizeof(int) * 4);
free(ptr1);
free(ptr3);
}

题目
选项: A.栈 B.堆 C.数据段(静态区) D.代码段(常量区)
globalVar在哪里?____ staticGlobalVar在哪里?____
staticVar在哪里?____ localVar在哪里?____
num1 在哪里?____

char2在哪里?____ *char2在哪里?___ pChar3在哪里?____
*pChar3在哪里?____ ptr1在哪里?____ *ptr1在哪里?____

要解决这个问题,我们不妨先来回顾一下C\C++的内存分布:
在这里插入图片描述
栈:向下增长;且储存局部变量、函数的参数、返回值等等。
堆:向上生长;主要是动态开辟的内存,用完需要用户自己销毁的空间,因此这一块空间需要我们重点关注
数据段(静态区):主要储存全局变量与静态变量
代码段(常量区):主要储存可执行代码与常量。
有了这样的认识那题目自然也就会做了
在这里插入图片描述
因此题目答案:CCCAA /AAADAB

C语言中动态内存管理方式回顾

1.malloc/calloc/realloc的区别
(1) malloc与realloc、calloc的参数不同
(2) malloc只能用于开辟空间,calloc与realloc可用于开辟空间与扩容
(3) calloc除了开辟空间与扩容还有初始化的作用

C++内存管理的方式

C语言开辟空间的函数在C++中依然可以适用,但C++也有自己分配空间的函数:new与delete

语法规则:
需要开辟一个int大小的空间
int* p = new int;
如需要开辟存十个int类型的数组:
int* p1 = new int[10];
销毁空间
delete p;
delete[] p1;

我们发现相比于C语言开辟空间变得更加简洁了,那他的好处只有这一个吗?
不,除了变得更简洁之外,new还有诸多好处
1.new还能很好地控制初始化。如

int* p2 =new int(10);//表示new一个int控件将该控件初始化为10
int* p3 =new int[10]{1,2,3,4,5};//表示new十个int空间并将前五个初始化为大括号内的值

在这里插入图片描述
既然new能控制初始化,自定义类型该怎么处理呢?
2.new对于自定义类型会开空间后调用其构造函数;与此同时delete也会调用相应的析构函数
例如:创建链表节点:
C语言实现如下:
在这里插入图片描述
C++实现如下:在这里插入图片描述
以上的对比大家是不是对new与delete有了新的认知,它确实是十分的方便,因为它与类和对象的特点进行了有机的结合,以后我们开辟空间首选肯定就为new了,
3.new开辟失败后,不需要我们像malloc那样手动检查,它能够直接抛异常

http://www.ds6.com.cn/news/6111.html

相关文章:

  • 视频教学互动网站建设搜索引擎营销优化
  • 网站建设有用吗建站工具有哪些
  • wordpress 如何购买主题百中搜优化软件靠谱吗
  • 做照片有那些网站满十八岁可以申请abc认证吗
  • 做海报的网站小白qq百度学术论文查重免费检测
  • 网站建设销售好做吗流量精灵网页版
  • wordpress seo网站seo优化方法
  • 网站关键字优化公司如何创建一个个人网站
  • 网站域名价值查询工具汕头百度网络推广
  • 如何建设一个人工智能网站清理大师
  • 好看的网站设计网站微信推广平台自己可以做
  • 做外贸需要浏览外国网站广州网站优化服务商
  • 汕头网站建设模板自己怎么做网站
  • vi设计开题报告百度seo排名教程
  • 钢筋网片理论重量表规格表北京seo顾问服务公司
  • 网页设计实训报告美食主题厦门seo哪家强
  • 专业网站是指什么福州网站seo公司
  • 单位网站建设方案网络防御中心
  • 如何做网站国际化搜狗链接提交入口
  • 重庆专业网站推广报价全网整合营销推广方案
  • 蓝色系 网站大连企业网站建站模板
  • 广西网站制作个人seo怎么赚钱
  • 那些网站可以做问答网站建设公司哪家好?
  • 昆明网站建设优化技术百度图片搜索入口
  • 如何利用个人nas做网站不受限制的万能浏览器
  • 如何做代购网站设计营销运营主要做什么
  • h5网站建设功能计划表广州网站优化推广方案
  • 网站建设最基础是什么搜索引擎优化需要多少钱
  • 石家庄网站备案百度竞价推广点击器
  • 网站建设免费的服务器seo黑帽是什么