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

成都旅游视频电脑优化软件排行榜

成都旅游视频,电脑优化软件排行榜,河北省网站备案,asp网站没有数据库连接动态分配内存概述 先说数组的长度是预定义好的,固定不变的。但是呢,实际上所需的内存空间取决于实际输入的数据,而无法预先确定。所以根据实际情况,推出了内存管理函数。这些内存管理函数可以按需要动态分配内存空间,…

动态分配内存概述

  1. 先说数组的长度是预定义好的,固定不变的。但是呢,实际上所需的内存空间取决于实际输入的数据,而无法预先确定。所以根据实际情况,推出了内存管理函数。这些内存管理函数可以按需要动态分配内存空间,也可以吧不在使用的空间回收再次利用

静态分配

  1. 在程序编译或运行过程中,按事先规定大小分配内存空间的分配方式。
  2. 必须事先知道所需空间大小
  3. 分配在栈区或全局变量区,一般以数组的形式。
  4. 按计划分配

动态分配

  1. 在程序运行过程中,根据需要大小自由分配所需空间
  2. 按需分配
  3. 分配在堆区,一般使用特点的函数进行分配。

动态分配函数

stdlib.h

malloc函数

  1. 函数原型:void*malloc(unsigned int size)
  2. 功能说明:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。函数原型返回void*指针,使用时必须做相应的强制;类型转换,分配的内存空间内容不确定,一般使用memset初始化。
  3. 返回值:分配空间的起始地址(分配成功),NULL(分配失败)
  4. 在调用malloc之后,一定要判断一下,是否申请内存成功
  5. 如果多次malloc申请的内存,第一次和第二次申请的内存不一定是连续的

练习

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main() {int* p;int i, n;printf("输入申请的元素个数\n");scanf_s("%d", &n, 4);p = (int*)malloc(n * 4);if (p == NULL) {printf("error\n");return 0;}for (i = 0;i < n;i++) {p[i] = i;}for (i = 0;i < n;i++) {printf("p[%d]=%d\n", i, p[i]);}free(p);return 0;
}

free函数

  1. 头文件:#include<stdlib.h>
  2. 函数定义:void free(void*ptr)
  3. 函数说明:free函数释放ptr指向的内存
  4. 注意ptr指向的内存必须是malloc calloc relloc动态申请的内存
  5. free后,因为没有给p赋值,所以p还是指向原先动态申请的内存。但是内存已经不能再用了,p变成野指针了。
  6. 一块动态申请的内存只能free一次,不能多次free

calloc函数

  1. 头文件:#include<stdlib.h>
  2. 函数定义:void*calloc(size_t nmemb,size_t size);
  3. size_t实际是无符号整型,它是在头文件中,用typedef定义出来的。
  4. 函数的功能:在定义的堆中,申请nmemb快,每块的大小为size个字节的连续区域
  5. malloc和calloc函数都是用来申请内存的。
  6. 区别:(malloc申请的内存,内存中存放的内容是随机的,不确定的,而calloc函数申请的内存中的内容为0)
  7. 调用方法:char*p=(char*)calloc(3,100);(在堆中申请了三块,每块大小为100字节,及300个字节连续的区域)

realloc函数(重新申请内存)

  1. 为了使申请的两块内存连续,而出现realloc函数。(使用malloc,calloc函数,单次申请的内存是连续的,两次申请的两块内存不一定连续)
  2. 头文件:#include<stdlib.h>
  3. 函数定义:void*realloc(void*s,unsigned int newsize)
  4. 函数的功能:在原先s指向的内存基础上重新申请内存,新的内存的大小为new_size个字节,如果原先内存后面有足够大的空间,就追加,如果后边的内存不够用,则relloc函数会在堆区找一个newsize个字节大小的内存申请,将原先内存中的内容拷贝过来,然后释放原先的内存,最后返回一个新内存地址
  5. 如果newsize比原先的内存小,则会释放原先内存的后面的存储空间,只留前面的newsize个字节。返回值:新申请的内存的首地址

内容泄露

  1. 也就是申请的内存,首地址丢了,找不到了。
http://www.tj-hxxt.cn/news/1909.html

相关文章:

  • 南阳网站建设电话百度在线入口
  • 网站建设改版目的搜索推广开户
  • 给公司做网站 图片倾权百度优化推广
  • 好听高雅又聚财的公司名字搜狗seo查询
  • 宿州做网站公司外贸展示型网站建设公司
  • 做网站算软件开发么上海谷歌seo公司
  • 濮阳新闻网头条鄂州seo
  • 佛山建设电脑优化大师有用吗
  • wordpress怎么修改图片大小成都关键词seo推广平台
  • 百度站长网站提交查域名ip地址查询
  • 东光网站建设全自动引流推广软件
  • 做淘宝优惠网站学生网页制作成品
  • 沈阳关键词seo宁波seo推广服务电话
  • 怎样宣传一个网站网络推广有哪几种方法
  • 网站建设品牌站长之家官网登录入口
  • 小草网络 网站建设新闻发布会
  • 国外免费b2b网站有哪些百度付费推广的费用
  • 十堰 网站建设合肥网站seo整站优化
  • seo网站优化详解aso优化服务平台
  • 四线城市做网站建设怎么样中国十大策划公司排名
  • 如何进行页面设计小璇seo优化网站
  • 天津企业网站建设一条龙手机优化大师怎么退款
  • 知名网站定制报价宁波网站推广公司价格
  • 做毕业设计个人网站任务书seo教程技术整站优化
  • 手机网站建设品牌seo标题优化关键词怎么选
  • jquery效果网站搜索引擎优化报告
  • 网站建设加推广话术百度识图找原图
  • 福建建设银行官方网站商业网站设计
  • 赚钱做任务的网站seo咨询师招聘
  • 网站推广包含哪些方法站长工具seo综合查询工具