calloc()函數是C語言的庫函數,用于動態分配內存空間。它與malloc()函數類似,但是calloc()函數在分配內存空間的同時將其初始化為0。它的語法如下:
void *calloc(size_t num, size_t size);
其中,num表示要分配的元素的個數,size表示每個元素的大小。函數返回一個指向分配內存空間的指針,如果分配失敗則返回NULL。
下面是一個使用calloc()函數的例子:
#include <stdio.h> #include <stdlib.h>
int main() { int *ptr; int n, i;
printf(“輸入要分配的元素個數:”); scanf(“%d”, &n);
// 分配內存空間 ptr = (int*)calloc(n, sizeof(int)); if(ptr == NULL) { printf(“內存分配失敗\n”); exit(0); }
printf(“輸入元素的值:\n”); for(i = 0; i < n; i++) { scanf(“%d”, ptr + i); }
printf(“輸入的元素是:\n”); for(i = 0; i < n; i++) { printf("%d ", *(ptr + i)); }
// 釋放內存空間 free(ptr);
return 0; }
在上面的例子中,首先通過scanf()函數獲取要分配的元素個數n。然后使用calloc()函數分配n個int類型元素的內存空間,每個元素的大小為sizeof(int)。如果分配失敗,則輸出錯誤信息并退出程序。
接下來,通過scanf()函數依次獲取每個元素的值,存儲到ptr指針指向的內存空間中。
最后,通過循環遍歷ptr指針指向的內存空間,依次輸出存儲的元素值。
最后,使用free()函數釋放掉ptr指針指向的內存空間,防止內存泄漏。
通過上述例子,我們可以看到calloc()函數在分配內存空間的同時將其初始化為0,這在某些情況下非常方便。同時,我們還需要注意在使用完calloc()函數分配的內存空間后,要使用free()函數釋放掉該內存空間,以免造成內存泄漏。