C++ 中的calloc() 函數為對象數組分配一塊內存並將其所有位初始化為零。
如果分配成功,calloc() 函數會返回一個指向已分配內存塊的第一個字節的指針。
如果大小為零,則返回的值取決於庫的實現。它可能是也可能不是空指針。
calloc()原型
void* calloc(size_t num, size_t size);
該函數在<cstdlib> 頭文件中定義。
參數:
- num:一個無符號整數值,表示元素的數量。
- size:一個無符號整數值,以字節為單位表示內存塊。
返回:
calloc() 函數返回:
- 指向函數分配的內存塊開始的指針。
- 如果分配失敗,則為空指針。
示例 1:calloc() 函數如何工作?
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int *ptr;
ptr = (int *)calloc(5, sizeof(int));
if (!ptr) {
cout << "Memory Allocation Failed";
exit(1);
}
cout << "Initializing values..." << endl
<< endl;
for (int i = 0; i < 5; i++) {
ptr[i] = i * 2 + 1;
}
cout << "Initialized values" << endl;
for (int i = 0; i < 5; i++) {
/* ptr[i] and *(ptr+i) can be used interchangeably */
cout << *(ptr + i) << endl;
}
free(ptr);
return 0;
}
運行程序時,輸出將是:
Initializing values... Initialized values 1 3 5 7 9
示例 2:calloc() 大小為零的函數
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int *ptr = (int *)calloc(0, 0);
if (ptr == NULL) {
cout << "Null pointer";
} else {
cout << "Address = " << ptr << endl;
}
free(ptr);
return 0;
}
運行程序時,輸出將是:
Address = 0x371530
相關用法
- C++ cauchy_distribution a()用法及代碼示例
- C++ clock()用法及代碼示例
- C++ clog用法及代碼示例
- C++ count()用法及代碼示例
- C++ copy_n()用法及代碼示例
- C++ complex cosh()用法及代碼示例
- C++ copy()用法及代碼示例
- C++ cbrt()用法及代碼示例
- C++ c32rtomb()用法及代碼示例
- C++ count_if()用法及代碼示例
- C++ c16rtomb()用法及代碼示例
- C++ cin用法及代碼示例
- C++ ctime()用法及代碼示例
- C++ copy_backward()用法及代碼示例
- C++ cosh()用法及代碼示例
- C++ cout用法及代碼示例
- C++ cos()用法及代碼示例
- C++ copysign()用法及代碼示例
- C++ cmath abs()用法及代碼示例
- C++ copy_if()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ calloc()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。