前言
记录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); 小结
- malloc或calloc函数需要跟free配套使用,要不然容易导致内存泄漏
- 在结构体时,获取结构体占用字节大小时时sizeof(struct stu)。
参考文章
- 《C语言教程讲义(谭浩强).pdf》
联系我们
微信号:rssme_com