乙個函式分配做

2021-06-26 03:58:15 字數 919 閱讀 2951

問題:

當乙個函式返回

,返回值

可能表明

發生了乙個錯誤

123

// declare an array of 10 integers

int *pandata = new int[10];

pandata[5] = 3;

你能確定的假設可能違反了?

答案是,運營商新的(實際上是呼叫乙個函式分配做)如果使用者記憶體失敗。

如果發生這種情況,pandata將被設定為零,當我們使用下標操作符對pandata,程式會崩潰。

這裡的錯誤檢查

新版本:

123

456// delcare an array of 10 integers

int *pandata = new int[10];

// if something went wrong

if (!pandata)

exit(2); // exit the program with error code 2

pandata[5] = 3;

問題:當程式接收輸入(無論是從使用者,或檔案),輸入不正確的格式。

這裡的示例程式,

你看到的

123

4567

char strhello = "hello, world!";

std::cout << "enter an index: ";

int nindex;

std::cin >> nindex;

std::cout << "letter #" << nindex << " is " << strhello[nindex] << std::endl;

記憶體分配函式分類

有 4種用於記憶體分配的 api函式。虛擬 virtual 函式用於分配和管理大數量的記憶體,堆函式 heap 用於小數量記憶體,全域性函式 global 及區域性函式 local 用於小數量記憶體分配,這兩類函式是為了實現與 16位系統相容而提供的。win32 api 仍然維護全域性以及區域性的堆...

乙個函式分析多繼承建構函式

類名 類名 形參表 比如 circle circle float r 類名 類名 形參表 內嵌物件1 形參表 內嵌物件2 形參表 比如 deriverd int a,int b,int c,int d base1 a member2 d member c base2 b include using ...

用calloc 函式分配記憶體

用calloc 函式分配記憶體 calloc函式原型 void calloc size t num elements,size t element size 在標頭檔案中宣告的calloc 函式與malloc 函式相比有兩個優點。第一,它把記憶體分配為給定大小的陣列,第二,它初始化了所分配的記憶體,...