當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ calloc()用法及代碼示例


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++ calloc()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。