c 中使用new來分配記憶體

2021-10-05 19:43:48 字數 732 閱讀 9726

指標初始化為變數的位址,比如 int *pt = &higgens

這時候變數在程式編譯的時分配的有名稱的記憶體,指標只是為可以通過名稱直接訪問的記憶體提供乙個別名。

其實指標真正的厲害在於,在執行階段分配未命名的記憶體以儲存,在這種情況下,只能通過指標來訪問記憶體

在c語言中,可以用庫函式malloc()來分配記憶體

在c++中,通過new運算子

訪問記憶體有兩種方式:

需要指定2個資料型別:需要什麼型別的記憶體以及用來宣告合適的指標

如果以及宣告了相應型別的指標,則可以直接使用指標,不用再宣告乙個新的指標

new int : 程式設計師告訴new,需要為int資料型別分配記憶體,new運算子根據型別來確定需要多少位元組的記憶體,找到乙個長度正確的記憶體塊,並返回該記憶體的位址,並返回該記憶體塊的位址。然後,將位址賦給pn,pn是被宣告為指向int的指標。pn是位址,*pn是儲存在那裡的值。

pn和pt都是將乙個int變數的位址複製給了指標

pt也可以通過變數名higgens來訪問該int,pn就只能通過該指標進行訪問

使用delete釋放記憶體

當需要記憶體的時候,可以使用new來請求

當使用完了之後,使用delete歸還給記憶體池,歸還或釋放記憶體可供程式的其他部分使用

int *ps = new int;

delete ps;

int a =5;

int *p = &a;

delete p;  //error

C 使用new來分配記憶體

對位址的工作方式有一定了解後,來看看它如何實現在程式執行時分配記憶體。前面我們都將指標初始化為變數的位址 變數是在編譯時分配的有名稱的記憶體,而指標只是為可以用過名稱直接訪問的記憶體提供了乙個別名。指標真正的用武之地在於,在執行階段分配未命名的記憶體以儲存值。在這種情況下,只能通過指標來訪問。在c語...

4 7 4 使用new來分配記憶體

前面,我們將指標初始化為變數的位址 變數是在編譯時分配的 有名稱的記憶體,而指標只是為可以通過名稱直接訪問的記憶體提供了乙個別名。指標真正的用武之地在於,在執行階段分配未命名的記憶體以儲存值。在這種情況下,只能通過指標來訪問記憶體。new的用法 int pn new int new int告訴程式,...

c 中用new分配記憶體

new的作用和使用方法如下 new的作用在於可以在程式執行階段動態分配記憶體,記憶體的大小在執行時根據需要確定,從而 高效利用記憶體空間。new的使用方法如下 typename pointer name new typename使用時使用者需要指定型別 指標型別和要開闢的記憶體儲存的資料型別 new...