当前位置: 首页> 文旅> 文化 > 高端网站设计哪家公司好_云南高风险地区名单最新_张雪峰谈广告学专业_seo推荐

高端网站设计哪家公司好_云南高风险地区名单最新_张雪峰谈广告学专业_seo推荐

时间:2025/7/8 1:04:59来源:https://blog.csdn.net/2401_85828611/article/details/142689927 浏览次数:1次
高端网站设计哪家公司好_云南高风险地区名单最新_张雪峰谈广告学专业_seo推荐

目录

3.free函数

cplusplus网的翻译

提炼要点

使用

x86+debug环境下, 打开内存窗口

建议


3.free函数

cplusplus的介绍 点我跳转

cplusplus网的翻译

函数

free


void free (void* ptr);

释放内存块
之前通过调用malloc来分配一块内存,calloc和recalloc是来释放内存块的,让内存块可以用于后续的分配

如果ptr指针不指向通过上述函数分配的内存块,会导致为未定义行为

如果ptr指针为空,该函数不作任何处理

注意到函数不自己改变ptr的值,因此函数仍然指向同一个位置(现在无效)

参数


ptr:指向之前被malloc,calloc或recalloc分配的内存块

返回值


无(原因为void类型)

提炼要点

1.free函数用来释放动态开辟的内存

2.参数ptr指向的空间为malloc,calloc或recalloc开辟的空间

3.如果参数ptr指向的空间不是动态开辟的,那free函数的行为是未定义的

禁止这样写:

#include <stdio.h>
#include <stdlib.h>
int main()
{int a = 0;int* p = &a;free(p);
}

4.如果参数ptr是NULL指针,则函数不做任何处理

5.使用free函数要加#include <stdlib.h>

使用

#include <stdio.h>
#include <stdlib.h>
int main()
{int* p = (int*)malloc(20);if (p != NULL){*p = 1;printf("%d", *p);return 0;}else{perror("malloc");return 1;}free(p);
}

x86+debug环境下, 打开内存窗口

执行完int* p = (int*)malloc(20);后输入p

执行完*p = 1; 再次查看

执行完free(p);再次查看

指针p的值没有变化,而且free函数不对之前分配的内存空间赋新值,只是交换给操作系统,因此没有变化

建议

1.虽然free函数没有改变指针的值,但建议手动为p赋NULL,否则为野指针(对之前开辟的内存空间没有使用权限)

2.有分配内存空间(,malloc,calloc,recalloc)就有释放内存空间(free)

关键字:高端网站设计哪家公司好_云南高风险地区名单最新_张雪峰谈广告学专业_seo推荐

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: