文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
关于内存分配的函数关于动态内存和静态内存
关于内存分配的函数
malloc函数的使用
int *p = (int *)malloc(4); int *p = malloc(sizeof(int)); //这样写比较好,不受系统影响 int *p = malloc(sizeof*p); //这样写也是可以的
free函数的使用
free(p)
需要注意的是,释放并不是指清空内存空间,而是指将该内存空间标记为“可用”状态,使操作系统在分配内存时可以将它重新分配给其他变量使用,这个时候p指向的仍然是那块内存空间,所以安全起见,释放完内存之后应当立即将其设为NULL。
calloc的使用
void *calloc(size_t nitems, size_t size) //元素个数,元素大小 int * a = calloc(10, sizeof(int)); //相当于长度为10的int数组
这个函数同时会自动将内存置0,当分配大块内存的时候,calloc比较快。
关于动态内存和静态内存所谓动态和静态就是指内存的分配方式。动态内存是指在堆上分配的内存,而静态内存是指在栈上分配的内存。



