前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7.7 动态内存分配与指向它的指针变量

7.7 动态内存分配与指向它的指针变量

作者头像
小林C语言
发布2019-08-09 14:39:45
6910
发布2019-08-09 14:39:45
举报
文章被收录于专栏:C语言入门到精通

一、什么是内存的动态分配

全局变量是分配在内存中的静态存储区的,非静态的局部变量是分配在内存中的动态存储区的,这个存储区称为“栈”。

C语言中允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放。这些数据是临时存放在一个特别的自由存储区称为“堆”

二、怎样建立内存的动态分配

(1)malloc函数

函数原型

void *malloc(unsigned int size);

作用:是在内存的动态存储区分配一个长度为size的连续空间

注意:形参的类型定义为无符号整型(不允许为负数)

(2)calloc函数

函数原型

void *calloc(unsigned n,unsigned size);

作用:在内存的动态存储区分配n个长度为size的连续空间,这个空间一般比较大

(3)free函数

函数原型

void free(void *p);

作用:释放指针变量p所指向的动态空间,使这部分空间能重新被其他变量使用

(4)realloc函数

函数原型

void *realloc(void *p,unsigned int size);

作用:重新分配动态空间大小

三、void指针类型

C99允许使用基类型为void的指针类型

注意:不要把指向void类型理解为指向任何的类型,而应理解为指向空类型或不确定向类型

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档