-
新建後,就是向p申請一塊記憶體,更重要的是告訴系統這個記憶體空間已經申請了,以後如果在其他地方申請,就不會分配到這個位址了。
delete,就是告訴系統這個位址已經被放棄了,如果以後還有申請的空間,這個記憶體可以分配,但是這個時候,p和這個記憶體的內容並沒有清空。
也就是說,p 仍然指向這個空間,這是非常危險的,所以發布後必須手動設定 p=null; 是的。
否則,如果另乙個變數應用於原始 p 指向的空間,則再次使用 p 操作記憶體將導致致命錯誤。 因此,將來有必要將指標留空。
-
打個比方,記憶就像一座房子。
新是買房。
刪除就是賣掉房子。
房子沒有被摧毀,它仍然在那裡。 你仍然可以在裡面放一些東西。 但這顯然不再合法了。 以後,如果你放進去的東西被別人處理掉了,你就不能抱怨了。
-
記憶體被釋放了,但 p 仍然是同乙個位址,p[0]、p[1] 仍然會按照位址的順序讀取資料,記憶體的內容不變,但可以被程式中的其他變數使用而不是占用它。
-
new 分配記憶體。
常用格式為:型別名 * 指標 = 新型別名;
例如 int * pi = new int;
型別可以是基本資料型別、結構、自定義類等,以釋放記憶體。
常見的格式是:刪除指標名稱;
注意 delete 與 new 配對,只有 new 分配的記憶體才能釋放。
刪除只能使用一次,不能使用兩次。
新建,用於建立動態陣列。
一般格式為:type name * pointer = new type name [ array size ];
例如 char * pc = new char [234];
pc 被分配第乙個元素的位址,指向第乙個元素 delete 以釋放動態陣列。
常見的格式為:刪除指標;
new,指標可以用作陣列名稱,例如 float * pf = new float [200];
pf[24],即陣列第 25 個元素的值,下標從 0 開始,C++ 中使用 new 和 delete 來動態分配記憶體,C 使用 malloc 和 free
-
是的,Malloc 和 Free 是 C++ C 中的標準庫函式,而 New Delete 是 C++ 中的運算子。
從功能上講,它們都用於申請和釋放記憶體。
房東混淆了實踐和抽象。 點、線、平面都是人抽象出來的,這些東西在現實生活中是不存在的,它們都是身體。 在哲學中,點是不能分割的最小單位,在數學中,點是由一串坐標值表示的東西,而在物理學中,點是乙個質量“概念”。 >>>More
很長一段時間以來,維度對我們來說都是非常深奧的,人們能理解的維度只有一、二、三,而四維空間已經夠複雜了,上面的維度比較困難,科學家們正試圖解釋這一點。 在很多科幻作品中,維度的存在制約著文明的發展,很多高階文明都存在於高維度,人類想要發展就必須突破維度,這一點得到了很多人的認可。 在科學家看來,為了突破維度極限,我們還需要找到一種物質。 >>>More