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

专业做外贸网站nginx wordpress 管理

专业做外贸网站,nginx wordpress 管理,个人网站 组建,wordpress图标不显示了我们在写程序时&#xff0c;想要自己控制内存&#xff0c;因此动态内存管理非常有必要学习。 动态内存管理常用的函数 使用时需要引入<stdlib.h>头文件 malloc函数 void* malloc(size_t size) // malloc函数的定义&#xff0c;返回值和参数 size为开辟的空间大小 开…

我们在写程序时,想要自己控制内存,因此动态内存管理非常有必要学习。

动态内存管理常用的函数

使用时需要引入<stdlib.h>头文件

malloc函数 

void* malloc(size_t size) // malloc函数的定义,返回值和参数

size为开辟的空间大小

开辟成功返回值是开辟的内存空间的起始位置,开辟失败返回空指针 。返回值需要检查。

使用完申请的空间后需要用free函数来释放空间,再将那个指针变量赋值为NULL。而且free函数只能释放动态开辟的内存空间,否则会发生错误。

#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
int main() {int arr[10] = { 0 };// 动态内存开辟//int* p = (int*)malloc(INT_MAX); // 错误的申请int* p = (int*)malloc(40);// 检查返回值if (p == NULL) {printf("%s\n", strerror(errno));return 1; // 异常返回1}// 开辟成功,使用内存int i = 0;for (i = 0; i < 10; i++) {*(p + i) = i;printf("%d ", *(p + i));}// 释放申请的空间free(p);// 将变量改为NULLp = NULL;return 0;
}

calloc函数

 

void* calloc (size_t num,size_t size);

 这个函数给num个元素(每个元素的大小为size)开辟一片空间,并将初始值设置为0.

malloc函数的区别这个函数会将开辟的空间的每个字节初始化为0。

#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
int main() {// 开辟时会将初始值复制为0// 开辟10个整形的空间int* p = (int*)calloc(5, 10);if (p == NULL) {printf("%s\n", strerror(errno));return 1;}int i = 0;for (i = 0; i < 10; i++) {printf("%d ", *(p + i));}// 释放free(p);p = NULL;return 0;
}

realloc函数

void* realloc(void* ptr, size_t size);

该函数是用来调整动态开辟的内存大小的,ptr是要调整的内存地址,size是调整后的内存大小,返回值为调整之后的内存起始位置,在调整内存大小的基础上,会将原内存中的数据移到新的空间。

如果调整后的空间会覆盖到其他被使用的空间则会另外寻找一片新的空间,并将这片空间的起始地址返回而且会将原空间释放掉,否则会返回当前空间的起始地址。  

不要直接用原来的指针接收返回值,可能会返回空指针,应该先用一个新的指针来接收重新开辟后的指针,判断重新开辟后的指针是否为NULL,不为NULL再赋值给原来的指针。

int main() {realloc(NULL, 80); // 等价于malloc(40);int* p = (int*)malloc(40);if (p == NULL) {printf("%s\n", strerror(errno));return 1;}int i = 0;// 将开辟空间的元素复制为1,2,3,4,5,6,7,8,9,10for (i = 0; i < 10; i++) {*(p + i) = i + 1;}// 扩容int* ptr= (int*)realloc(p, 100);if (ptr != NULL) {	// 判断是否开辟成功p = ptr; // 将新的地址空间赋值给原来的指针}free(p);free(ptr);p = NULL;ptr = NULL;return 0;
}

 使用注意点

  1. 接收动态开辟空间的返回值后需要判断返回值是否不为NULL,为NULL则不能使用
  2. 不要越界访问动态开辟的空间
  3. 不要free释放不是动态开辟的内存空间
  4. 不要只释放动态开辟的空间的一部分
  5. 不要多次释放同一块动态开辟的空间
  6. 不要忘记释放动态开辟的空间!!!(内存泄漏)释放语句可能不执行

文章转载自:

http://jXl06Umu.mtrfz.cn
http://jYMnEKrX.mtrfz.cn
http://tZYGnBUq.mtrfz.cn
http://jNwMHZrZ.mtrfz.cn
http://WqT44V4i.mtrfz.cn
http://shxbgd2T.mtrfz.cn
http://6Pv0OwZN.mtrfz.cn
http://Xsy6bnV2.mtrfz.cn
http://TbHxx9D5.mtrfz.cn
http://lWCR7QgS.mtrfz.cn
http://pzRihjRX.mtrfz.cn
http://pJUibQTD.mtrfz.cn
http://QTng9vfC.mtrfz.cn
http://XfjbIvXY.mtrfz.cn
http://iJkMYAh3.mtrfz.cn
http://CAgbQ3hf.mtrfz.cn
http://OwgSEjeX.mtrfz.cn
http://mYpp09jo.mtrfz.cn
http://6wh1sTKd.mtrfz.cn
http://etIsHq0P.mtrfz.cn
http://283fD3iS.mtrfz.cn
http://14oQoDsP.mtrfz.cn
http://vSsHwsSk.mtrfz.cn
http://SvIXqGgy.mtrfz.cn
http://C65MPcIJ.mtrfz.cn
http://iYh2Cwfp.mtrfz.cn
http://La3kNh90.mtrfz.cn
http://6yM1JwBP.mtrfz.cn
http://tmlJ3GiA.mtrfz.cn
http://oXLTUdUZ.mtrfz.cn
http://www.dtcms.com/wzjs/743207.html

相关文章:

  • 互联网站备案手续重庆新闻天天630
  • 接私活做网站设计深圳做男装什么网站容易找工
  • 陕西省和城乡建设厅网站wordpress带轮播企业站主题
  • 一个公网ip可以做几个网站二手书籍交易网站开发方式
  • 温州网站建设企业为客户网站做产品描述
  • 在您的网站首页添加标签最近三天的科技新闻
  • 网站宣传的方法有哪些公众号做视频网站
  • 跑腿网站建设营销网站的案例分析
  • 网站组织结构图网站服务费怎么做凭证
  • 做微电网的公司网站上海app开发定制
  • 网站开发服务器配置濮阳网站设计公司
  • 手机网站 分享按钮软件工程培训机构学费
  • 营销型 手机网站制作重庆网站开发哪家好
  • 网站买云服务哪家好哪个软件可以制作游戏
  • 哪些公司可以建设网站重庆网站免费优化
  • 画册设计公司网站wordpress浮动条件
  • 哪有做婚介网站的ios开发者中心
  • 宁波网站建设设计报告模板网代码
  • 搭建网站 赚钱seo诊断网站免费诊断平台
  • 滨州公司做网站网站建设发布设需求
  • 大田县建设资讯网站大型网络游戏
  • 网站地址查询ip小程序平台推广
  • 安平县外贸网站建设wordpress 分享到微信 插件
  • 易企秀网站怎么做轮播图网站开发需要什么软件有哪些
  • 网站打不开什么原因wordpress微信公众平台插件
  • 与知名网站互连电子商务平台中搜索词拆解时
  • 开源的网站建设平台平面广告设计是什么
  • 安徽建设学校网站中国最新军事新闻头条
  • 打开网站访问慢公司网站如何被收录
  • 下城网站建设廉江网站开发公司