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

企业网站的功能可分为前台和后台两个部分微信小程序彻底清除数据

企业网站的功能可分为前台和后台两个部分,微信小程序彻底清除数据,wordpress使用ip访问,网推团队文章目录 前言一、为什么存在动态内存管理二、动态内存函数的介绍1. malloc函数2. 内存泄漏3. 动态内存开辟位置4. free函数5. calloc 函数6. realloc 函数7. realloc 传空指针 总结 前言 C语言动态内存管理malloc、calloc、realloc、free函数、内存泄漏、动态内存开辟的位置等… 文章目录 前言一、为什么存在动态内存管理二、动态内存函数的介绍1. malloc函数2. 内存泄漏3. 动态内存开辟位置4. free函数5. calloc 函数6. realloc 函数7. realloc 传空指针 总结 前言 C语言动态内存管理malloc、calloc、realloc、free函数、内存泄漏、动态内存开辟的位置等的介绍 一、为什么存在动态内存管理 int a 0; int arr[5] {0};上述的开辟空间的方式有两个特点 空间开辟大小是固定的。数组在声明的时候必须指定数组的长度它所需要的内存在编译时分配。 但是对于空间的的需求不仅仅是上述的情况 有时候我们需要的空间大小在程序运行的时候才能知道上述的编译时开辟空间的方式就不能满足了。 这时候就只能用动态内存开辟了。 二、动态内存函数的介绍 1. malloc函数 malloc 函数需要引入头文件 stdlib.h C语言提供了一个动态内存开辟的函数 void* malloc(size_t size);这个函数向内存申请了一块连续可用的空间并返回指向这块空间的指针。 如果开辟成功则返回一个指向开辟好空间的指针。如果开辟失败则返回一个NULL指针因此malloc的返回值一定要做检查。返回值的类型是 void* 所以malloc函数并不知道开辟空间的类型具体在使用的时候使用者自己来决定。size 指的是 size 个 字节 的大小的空间如果参数 size 为 0 malloc 的行为是标准未定义的取决于编译器。 动态开辟40个字节大小的空间 #include stdio.h #include stdlib.h #include string.hint main() {int arr[10] { 0 };int* p (int*)malloc(40); // malloc 开辟 40 个字节大小的内存空间// 检验如果 动态内存开辟失败打印错误信息终止程序if (NULL p){printf(%s\n, strerror(errno));return 1;}int i 0;for (i 0; i 10; i){*(p i) i;}for (i 0; i 10; i){printf(%d , *(p i)); // 0 1 2 3 4 5 6 7 8 9}return 0; }需要开辟的内存空间过大返回空指针 INT_MAX 是定义的一个 21亿多的一个数字 #include stdio.h #include stdlib.h #include string.hint main() {int arr[10] { 0 };int* p (int*)malloc(INT_MAX * 2); // malloc 开辟 INT_MAX * 2 个字节大小的内存空间// 检验如果 动态内存开辟失败打印错误信息终止程序if (NULL p){printf(%s\n, strerror(errno));return 1;}int i 0;for (i 0; i 10; i){*(p i) i;}for (i 0; i 10; i){printf(%d , *(p i)); // Not enough space}return 0; }2. 内存泄漏 如果一个程序在向内存申请空间后没有释放申请的空间则在程序结束的时候系统会自动回收内存空间如果一个程序在向内存申请空间后没有释放申请的空间 并且程序在持续运行短时间不结束此时就存在内存泄漏。 3. 动态内存开辟位置 动态内存开辟在堆区。局部变量等开辟在栈区。 4. free函数 C语言提供了一个函数free专门是用来做动态内存的释放和回收的 void free (void* ptr);free 函数是用来释放动态开辟的内存。 如果参数 ptr 指向的空间不是动态开辟的那free函数的 行为是未定义的。如果参数 ptr 是 NULL 指针则函数什么事都不做。malloc 和 free 函数都声明在 stdlib.h头文件中。 #include stdio.h #include stdlib.h #include string.hint main() {int arr[10] { 0 };int* p (int*)malloc(40); // malloc 开辟 40 个字节大小的内存空间// 检验如果 动态内存开辟失败打印错误信息终止程序if (NULL p){printf(%s\n, strerror(errno));return 1;}int i 0;for (i 0; i 10; i){*(p i) i;}for (i 0; i 10; i){printf(%d , *(p i)); // 0 1 2 3 4 5 6 7 8 9}free(p);p NULL;return 0; }free p 就会 将申请40个字节的动态内存空间 释放掉。但是 p 依然存放着 之前接收的动态内存的地址会变成野指针。所以 在 释放完p 的空间后 将p 重置为 NULL指针。 5. calloc 函数 C语言还提供另外一个叫 calloccalloc函数也用来动态内存分配。 void* calloc(size_t num, size_t size);函数功能是为num个大小为size的元素开辟一块空间并且把空间的每个字节初始化为0。与函数 malloc 的区别只在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0。需要初始化时用 calloc 不需要初始化 用 malloc。 #include stdio.h #include stdlib.h #include string.hint main() {int* p (int*)calloc(10, sizeof(int)); // 开辟 10 个 int类型大小 的空间if (NULL p){printf(%s\n, strerror(errno));return 1;}int i 0;for (i 0; i 10; i){// 自动初始化为全 0printf(%d , *(p i)); // 0 0 0 0 0 0 0 0 0 0 }free(p);p NULL;return 0; }6. realloc 函数 realloc 函数的出现让动态内存管理更加灵活realloc函数可以做到对动态开辟内存大小的调整 void* realloc(void* ptr, size_t size);ptr 是要调整的内存地址size 调整之后新大小返回值为调整之后的内存起始位置。这个函数调整原内存空间大小的基础上还会将原来内存中的数据移动到新的空间。realloc在调整内存空间的时候存在两种情况: 1 原有空间之后有足够大的空间。2 原有空间之后的空间不够或被占用。 #include stdio.h #include stdlib.h #include string.hint main() {int* p (int*)malloc(40); // 开辟 10 个 int类型大小 的空间if (NULL p){printf(%s\n, strerror(errno));return 1;}int i 0;// 使用for (i 0; i 10; i){*(p i) i 1;}// 扩容int* str (int*)realloc(p, 80);if (str ! NULL){p str;}// 使用for (i 10; i 20; i){*(p i) i 1;}for (i 0; i 20; i){printf(%d , *(p i)); // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20}free(p);p NULL;return 0; }7. realloc 传空指针 realloc传空指针 和 malloc是等价的。 #include stdio.h int main() {int* p realloc(NULL, 40);// 此时 realloc 和 malloc(40)是等价的return 0; }总结 C语言动态内存管理malloc、calloc、realloc、free函数、内存泄漏、动态内存开辟的位置等的介绍
http://www.w-s-a.com/news/558987/

相关文章:

  • 构建网站空间网站开发与维护招聘
  • 网站建设的网页怎么做番禺网站开发哪家强
  • 网站开发是程序员吗百度网盘下载电脑版官方下载
  • 中国电力建设集团网站杭州网站运营
  • 大气网站模板下载效果好的网站建设公
  • 住房和城乡建设部网站打不开重庆市建设工程信息网官网30系统
  • 做美食软件视频网站大数据精准营销策略
  • 网站后台密码错误陕西大型网站建设
  • 网站建站中关键字搜索怎么弄wordpress 后台插件无法访问
  • 做减肥餐的网站网站优化注意事项
  • 做网站做推广有效果吗专门做淘宝优惠券的网站
  • 菜谱网站开发系统ps做网页效果图
  • 徐州品牌网站建设wordpress多重筛选页面
  • 网站改版提示无需改版个人怎么申请微信小程序
  • 电子商务网站建设的简要任务执行书可以注册免费网站
  • 公司网站设计需要什么豪爵铃木摩托车官网
  • 建收费网站合肥地区网站制作
  • 自己做头像网站小网站建设公司
  • 电子商务建设与网站规划wordpress linux安装
  • wordpress新手建站win8网站模版
  • 网站的简单布局孝感 商务 网站建设
  • 湖北手机版建站系统价格优化网站内容
  • 网站后台登录不显示验证码软文发布网站
  • 企业微网站建设方案收费的网站如何免费
  • 平昌县建设局网站中国500强企业有哪些
  • 网站开发制作的流程是什么网页打不开显示不安全怎么办
  • 网络网站开发设计安徽建设工程信息网怎么打不开了
  • 百度网站推广申请深圳公众号制作
  • 百度站长怎么做网站维护中国深圳航空公司官网
  • xampp安装网站模板海南一家天涯社区