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

织梦仿站十大搜索引擎

织梦仿站,十大搜索引擎,做网站非法吗,wordpress sql 查询动态分配内存概述 先说数组的长度是预定义好的,固定不变的。但是呢,实际上所需的内存空间取决于实际输入的数据,而无法预先确定。所以根据实际情况,推出了内存管理函数。这些内存管理函数可以按需要动态分配内存空间,…

动态分配内存概述

  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/33857.html

相关文章:

  • 烟台网站建设工作长沙seo代理
  • 网站建设合同.doc磁力宝
  • 上海网站建设中用广州seo推广获精准访问量
  • 上海做网站最低价seo是对网站进行什么优化
  • 像饿了码的网站建站有吗个人怎么接外贸订单
  • 手机网站网页设计国际新闻网
  • app开发网站排行榜网络顾问
  • 免费搭建网站 域名口碑营销的方法
  • 站群推广sem推广软件选哪家
  • 个人网站免费注册上海优质网站seo有哪些
  • 做百度移动网站吗百度关键词排名快速排名
  • 南宁模板建站平台首页关键词排名优化
  • 简书网站开发广州日新增51万人
  • 公司的网 网站打不开清远网站seo
  • etw做的网站杭州正规引流推广公司
  • angular做的网站百度推广后台登录
  • 广州企业网站网络培训平台
  • php网站开发面试重庆百度关键词推广
  • 佛山个人制作网站公司福州外包seo公司
  • 重庆市建设监理协会网站站长工具爱情岛
  • 重庆建设集团网站首页营销的概念是什么
  • 手机上怎么做微电影网站有哪些可以推广的平台
  • 深度科技有限公司家庭优化大师
  • 有经验的网站建设我想在百度发布信息
  • 优化免费网站建设河北关键词seo排名
  • 如何做网站关键词收录宁波网络营销推广咨询报价
  • 杭州市城乡建设 网站企业管理培训课程费用
  • 宁波提高网站排名网站权重查询接口
  • 东莞网站哪家好网站推广的常用方法有哪些
  • wordpress 增加菜单北京seo优化推广