国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中new和delete的介紹

2020-01-26 13:36:21
字體:
來源:轉載
供稿:網友

介紹

1.malloc,free和new,delete區別。

  • a.malloc,free是C/C++的標準庫函數。new,delete是c++的操作符。
  • b.malloc申請的是內存,嚴格意義不是“對象”,new申請的可以理解為“對象”,new 時會調用構造函數,返回指向該對象的指針。
  • c.對于class類型,必須用new/delete來創建和銷毀,自動調用構造和析構函數,malloc/free無法勝任。

2.使用new遵循原則:

  • a.用new申請的內存,必須用delete釋放。
  • b.用new[]申請的內存,必須用delete[]釋放。
  • c.delete釋放內存后,指針值不變,良好的風格是釋放后指針置為NULL,如,delete p; p = NULL。

使用

1.申請一個對象

 int* p1 = new int; delete p1; p1 = NULL;

2.申請多個對象

 int* p1 = new int[12]; delete[] p1; p1 = NULL;

3.申請一個長度為1024的char數組

 char* pArray = new char[1024]; for (int i=0; i < 1024; i++) { pArray[i] = i; } delete[] pArray; pArray = NULL;

4.申請一個類對象

#include <stdio.h>class Student{public: char name[32]; int age;};int main(){ Student* pStu = new Student(); delete pStu; pStu = NULL; return 1;}

5.申請1024個類對象

#include <stdio.h>class Student{public: int age; Student() { ... } ~Student() { ... }};int main(){ Student* pStu = new Student[1024]; for (int i=0; i<1024; i++) { pStu[i].age = i+1; } delete[] pStu; pStu = NULL; return 1;}

new多個對象不能傳參數,要求該類必須有默認構造函數。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖北省| 博兴县| 南充市| 万宁市| 石阡县| 桐庐县| 昌都县| 碌曲县| 南开区| 湖口县| 当阳市| 新平| 辽源市| 泰州市| 长汀县| 峨山| 武夷山市| 虎林市| 长丰县| 大竹县| 临安市| 丁青县| 华池县| 泰兴市| 福清市| 昭平县| 邢台县| 双鸭山市| 平原县| 临邑县| 图们市| 巩义市| 高青县| 闸北区| 准格尔旗| 永昌县| 通辽市| 高安市| 泗洪县| 克东县| 泰和县|