#include<stdlib.h> ide
void *calloc(size_t n, size_t size);函數
free();3d
目前的理解: 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 分配內存失敗\n"); return -1; } printf("buf is %d\n", buf[0]); printf("buf is %p\n", buf); buf[0] = 1; printf("buf is %d\n", buf[0]); free(buf); printf("buf is %p\n",buf); printf("buf is %d\n",buf[0]); buf = NULL; printf("buf is %p\n",buf); while (1) { //printf("buf is %p\n", buf); } return 0; }