calloc函数的使用和对内存free的认识
Posted nowroot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了calloc函数的使用和对内存free的认识相关的知识,希望对你有一定的参考价值。
#include<stdlib.h>
void *calloc(size_t n, size_t size);
free();
目前的理解: n是多少个这样的size,这样的使用类似有fread,fwrite. 这个函数把内存里面的数据清空了, free确实把本来的buf清空了,buf之后的数据是随机数据,有个问题就是free之后指针没有设置为NULL
#include <stdio.h> #include <stdlib.h> int main(void) { // calloc 1920 char* buf = (char*)calloc(1920,sizeof(char)); if (buf == NULL) { printf("calloc 分配内存失败 "); return -1; } printf("buf is %d ", buf[0]); printf("buf is %p ", buf); buf[0] = 1; printf("buf is %d ", buf[0]); free(buf); printf("buf is %p ",buf); printf("buf is %d ",buf[0]); buf = NULL; printf("buf is %p ",buf); while (1) { //printf("buf is %p ", buf); } return 0; }
以上是关于calloc函数的使用和对内存free的认识的主要内容,如果未能解决你的问题,请参考以下文章
动态内存函数+经典笔试题@动态内存管理---malloc +free + calloc + realloc
堆的分配和释放(malloc,free,calloc,realloc)
C:malloc/calloc/realloc/alloca内存分配函数