您的位置:首页 > 游戏 > 游戏 > 手机提取网页视频_大连高端网页公司_成都百度关键词排名_搜索排名优化

手机提取网页视频_大连高端网页公司_成都百度关键词排名_搜索排名优化

2025/2/19 9:01:32 来源:https://blog.csdn.net/hefaxiang/article/details/142923950  浏览:    关键词:手机提取网页视频_大连高端网页公司_成都百度关键词排名_搜索排名优化
手机提取网页视频_大连高端网页公司_成都百度关键词排名_搜索排名优化

本篇博客将讲解以下知识点:
(1)为什么要有动态内存分配

(2)malloc和free

1、为什么要有动态内存分配

我们已经掌握的内存开辟方式有:

int val = 40;//向内存中申请4个字节空间存储val
char arr[10];//向内存申请10个字节空间
 

上述的开辟空间的方式有两个特点:
(1)空间的开辟大小是固定的,一旦申请好空间,大小就无法调整。

(2)数字在声明的时候,必须指定数组的长度,数组空间一旦确定了,大小不能调整。

C语言中引入了动态内存开辟,让程序员自己可以申请和释放空间。

2、malloc和free

(1)malloc

注意:使用malloc函数时要包含头文件:stdlib.h

C语言提供了一个动态内存开辟的函数:

void*       malloc( size_t   size)

size的单位是字节,malloc(50)意思是向内存申请50个字节的空间。

注意:这个函数向内存申请一块连续可用的空间,并返回指向这块空间的起始地址。

1))如果开辟成功,则返回一个指向开辟好的空间的起始地址。

2))如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。

3))返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候有使用者自己来决定。

4))如果参数size_t为0,malloc的行为是标准未定义的,取决于编译器。

内存分配:

栈区中存储:局部变量、形式参数

堆区中存储:malloc、free、realloc、calloc

静态区中存储:静态变量、全局变量

示例:


 

(2)free

注意:使用free函数时,要包含头文件:stdlib.h

C语言提供了一个函数free,专门用来做动态内存的释放和回收。

函数原型:

void*     free(void*    ptr)

注意:ptr是要释放空间的起始地址。

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

1))如果参数ptr指的空间不是动态开辟的,则free函数的行为是未定义的

2))如果参数ptr是NULL指针,则free函数什么也不做。

malloc函数和free函数都声明在:stdlib.h头文件中。

版权声明:

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

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