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

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

C++中new和delete的介紹

2020-05-23 13:23:33
字體:
供稿:網(wǎng)友

介紹

1.malloc,free和new,delete區(qū)別。

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

2.使用new遵循原則:

  • a.用new申請的內(nèi)存,必須用delete釋放。
  • b.用new[]申請的內(nèi)存,必須用delete[]釋放。
  • c.delete釋放內(nèi)存后,指針值不變,良好的風格是釋放后指針置為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數(shù)組

 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多個對象不能傳參數(shù),要求該類必須有默認構(gòu)造函數(shù)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網(wǎng)的支持。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新化县| 宾阳县| 页游| 特克斯县| 永顺县| 松滋市| 万州区| 宁海县| 绥宁县| 双江| 贵南县| 托克托县| 通榆县| 寿光市| 平和县| 东明县| 大同市| 泽州县| 嘉禾县| 甘德县| 阳泉市| 新泰市| 安宁市| 徐州市| 花垣县| 邹平县| 灌阳县| 济源市| 云安县| 道真| 嵩明县| 抚州市| 乡宁县| 隆安县| 泰来县| 鲁甸县| 麦盖提县| 广丰县| 梁山县| 扬中市| 宜宾县|