C++ 庫 - <cstdlib>



C++中的<cstdlib>庫提供了各種用於執行常見操作的函式,例如記憶體管理、隨機數管理和字串轉換。它是C標準庫的一部分,在處理低階操作時非常有用。

在C++中,當與C風格的操作互動或處理低階記憶體管理時,使用<cstdlib>。雖然C++有自己的記憶體分配和型別轉換替代方案,但<cstdlib>提供的函式在某些情況下仍然被廣泛使用。

包含<cstdlib>標頭檔案

要在你的C++程式中包含<cstdlib>標頭檔案,可以使用以下語法。

#include <cstdlib>

<cstdlib>標頭檔案的函式

以下是<cstdlib>標頭檔案中所有函式的列表。

字串轉換

這些函式用於將字串(C風格字串)轉換為數值,例如整數和浮點數,或將數字轉換為字串。常用的C++ <cstdlib>字串轉換函式如下所示,以及它們的描述。

序號 函式及描述
1 atof

它將字串轉換為浮點值。

2 atoi & atol & atoll

它將字串轉換為整數值。

3 strtoul & strtoull

它將字串轉換為無符號整數值。

4 strtof & strtod & strtold

它將字串轉換為浮點值。

字串到整數轉換

在下面的示例中,我們將使用atoi將字串轉換為整數。

#include <iostream>
#include <cstdlib>
int main() {
   const char * x = "11123";
   int y = std::atoi(x);
   std::cout << "Result : " << y << std::endl;
   return 0;
}

輸出

以上程式碼的輸出如下:

Result : 11123

程序控制

這些函式用於管理和控制程式執行。它們包括程式終止、環境操作和程序處理等操作。常用的C++ <cstdlib>程序控制函式如下所示,以及它們的描述。

序號 函式及描述
1 abort

它導致程式終止。

2 exit

它導致程式終止並進行清理。

3 atexit

它註冊一個將在exit()呼叫時呼叫的函式。

4 quick_exit

它導致程式終止,但不完全清理。

5 at_quick_exit

它註冊一個將在quick_exit()呼叫時呼叫的函式。

6 _Exit

它用於終止呼叫程序。

終止程式

讓我們看下面的例子,我們將立即終止程式。

#include <cstdlib>
#include <iostream>
int main() {
   std::cout << "Program Started" << std::endl;
   if (true) {
      std::cout << "Exiting Program..." << std::endl;
      std::exit(0);
   }
   std::cout << "Hello" << std::endl;
   return 0;
}

輸出

以下是以上程式碼的輸出:

Program Started
Exiting Program..

記憶體管理

記憶體管理是指分配和釋放記憶體的過程。常用的C++ <cstdlib>記憶體管理函式如下所示,以及它們的描述。

序號 函式及描述
1 calloc

它用於為陣列分配記憶體並將所有元素初始化為零。

2 free

它用於釋放之前分配的記憶體。

3 malloc

它用於分配記憶體。

4 realloc

它用於擴充套件或縮小之前分配的記憶體。

記憶體分配

考慮下面的例子,我們將動態地分配一塊記憶體。

#include <iostream>
#include <cstdlib>
int main() {
   int * x = (int * ) std::malloc(4 * sizeof(int));
   if (x == nullptr) {
      std::cerr << "Memory Allocation Failed." << std::endl;
      return 1;
   }
   for (int a = 0; a < 4; ++a) {
      x[a] = a * 2;
      std::cout << x[a] << " ";
   }
   std::cout << std::endl;
   std::free(x);
   return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

0 2 4 6
廣告