前言

记录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》

相关文章

暂无评论

none
暂无评论...