导航号,我的单页导航
目录

前言

记录C语言中内存分配的使用。

正文

C语言中不允许动态分配数组,这样就存在内容长度的变化导致存储越界问题。

malloc函数的使用

调用形式

(类型说明符 * ) malloc(size);

分配长度为size的连续区域,函数返回的是搞区域的首地址。

举个例子:

普通类型

char *p;
p = (char *) malloc( 100 ); //分配100个字节的内存空间

结构体类型

struct stu{
 	int num;
 	char *name;
 	char sex;
 	float score;
} *p;

p=(struct stu *)malloc(sizeof(struct stu));

calloc的使用

calloc也可以分配内存空间

调用形式

(数据说明符 * )calloc(n, size);

分配n块长度为size字节的连续区域。

p=(struct stu *)calloc(2, sizeof(struct stu));

free的使用

free释放内存空间。

调用形式:

free(void *p);

小结

  1. malloc或calloc函数需要跟free配套使用,要不然容易导致内存泄漏
  2. 在结构体时,获取结构体占用字节大小时时sizeof(struct stu)。

参考文章

  1. 《C语言教程讲义(谭浩强).pdf》

版权声明 1、 本站名称 91易搜
2、 本站网址 https://www.91es.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权请留言
4、 本站禁止发布或转载任何违法的相关信息,如有发现请向站长举报
导航号,我的单页导航

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...