前言
记录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》
© 版权声明