C C 為什麼使用動態分配?

2021-10-05 04:27:13 字數 1142 閱讀 7990

#include

#include

#include

//why1:按需分配,不浪費記憶體

intmain()

;int

*salary =

null

;int n =0;

printf

("請輸入僱傭人數:");

//scanf_s("%d", n);×

scanf_s

("%d"

,&n);if

(n >=1)

}//二.列印

for(

int i=

0; i) delete [

] salary;

}else

if(n <=0)

system

("pause");

return0;

}

#include

#include

//區域性變數全域性化:棧區內(函式內區域性變數)通過儲存在堆區(動態記憶體所在),且由指標分配初始指向位址,實現全域性呼叫

//①返回指標

int*

demo1

(int n)

return ap;

}//②二級指標

void

demo2

(int

** pointer,

int n)

}int

main3()

//delete pointer;√-在malloc下隨意

//delete pointer;√-在malloc下隨意

free

(pointer)

;system

("pause");

return0;

}//c中malloc,free與c++中new delete相同(c++更簡便,且可實現更多功能,物件導向不能用malloc和free)

#include

#include

//轉移大陣地-利用堆區大記憶體,突破棧區限制

//因為是棧區,故要在函式中

void

demo()

intmain4()

C C 動態分配

分配失敗,返回空指標 c 兩個函式malloc 與free 下面是 malloc 函式的宣告。void malloc size t size 返回的是void 無型別 指標,故需要對指標做轉換 size 分配的位元組數 include include include malloc 函式需要的標頭檔案...

C C 動態分配記憶體

陣列是最常用的一種資料結構,其缺點是使用時必須確定陣列大小,因此會帶來一些不便 1 需要儲存的資料大小不確定時,預先開闢的空間太小裝不下,太大則浪費空間 2 使用的資料大部分預設儲存在棧 stack 裡,由系統管理,自動分配,自動刪除。但是stack很小,如果讀取的資料很大的話容易溢位。3 系統要等...

指標為什麼要動態分配空間

你需要分清 指標所占用的記憶體空間 和 指標指向的記憶體空間 之間的區別。指標變數需要儲存它所指向的記憶體位址,涉及到儲存就需要空間,例如在64位程式中,任何乙個指標變數都占用64位即8位元組的記憶體空間。而指標所指向的記憶體空間,指的是根據指標變數中儲存的記憶體位址定址到對應位置的記憶體空間。這就...