c/c++ new delete初探

new delete初探

1,new有2個作用

  • 開辟內存空間。
  • 調用構造函數。

2,delete也有2個作用

  • 釋放內存空間
  • 調用析構函數。

如果用new開辟一個類的對象的數組,這個類里必須有默認(沒有參數的構造函數,或者有默認值的參數的構造函數)的構造函數。

釋放數組時,必須加[]。delete []p

也可以用malloc,free,但是malloc不會自動調用類的構造函數,free也不會自動調用類的析構函數。

include <iostream>
#include <malloc.h>using namespace std;void c_1(){//c方式的內存空間的動態開辟                                   int n;cin >> n;int *p = (int*)malloc(sizeof(int) * n);for(int i = 0; i < n ; ++i){p[i] = i;}free(p);
}void cpp_1(){//c++方式的內存空間的動態開辟                                 int m;cin >> m;int *q = new int[m];for(int i = 0; i < m ; ++i){q[i] = i;}//釋放數組的空間,要加[]                                      delete []q;
}class Test{
public:Test(int d = 0) : data(d){cout << "create" << endl;}~Test(){cout << "free" << endl;}
private:int data;
};void c_2(){Test *t = (Test*)malloc(sizeof(Test));free(t);
}
void cpp_2(){Test *t = new Test(10);delete t;
}
int main(){c_1();cpp_1();c_2();cpp_2();Test *t = new Test[3];                                        delete []t;                                                   return 0;                                                     
} 

轉載于:https://www.cnblogs.com/xiaoshiwang/p/9509183.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279562.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279562.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279562.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php舊版本windows_Windows的舊版本中如何進行多任務處理?

php舊版本windowsConsidering that DOS was a single-tasking OS and the ties it had with early versions of Windows, just how did earlier versions of Windows manage to accomplish multi-tasking? Today’s SuperUser Q&A post looks at the answers to this ques…

批量提取視頻文件信息(文件大小及時長)并統計

隨著設備性能提高&#xff0c;視頻文件越來越大了。服務器在對外提供視頻服務時&#xff0c;需要承擔越來越大的存儲負擔。一般提供1080P的AVC編碼視頻已滿足多數觀看需求。&#xff08;1小時視頻大約1.3G&#xff09;此文要解決的就是關于已有大量高清視頻&#xff08;1小時超…

列出所有K個元素的子集-----2013年1月26日

問題描述:列出一個集合的元素個數為k的所有子集。思路:在字典順序列出所有子集的基礎上判斷元素個數就可以了&#xff0c;比較簡單。代碼如下:1 #include <stdio.h>2 #define MAX 10003 4 int main()5 {6 int n5;7 int set[MAX]{1};8 int index0;9 int …

docker swarm的應用----docker集群的構建

一、docker安裝 這里我們安裝docker-ce 的18.03版本 yum -y remove docker 刪除原有版本 #安裝依賴包 [rootDocker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2 #添加docker的CE版本的yum源配置文件 [rootDocker ~]# curl https://download.docker…

微信小程序 fire_如何在Fire TV和Fire TV Stick上側面加載應用程序

微信小程序 fireAmazon’s Fire TV and Fire TV stick technically runs Android…but you wouldn’t know it from looking. Amazon has a wall of content for its set-top box, and doesn’t want Google (with its own competing platform) to crash the party. But even t…

PS 技巧

1. 鋼筆的使用&#xff1a; 扣完一圈以后&#xff0c;按Ctrl回車鍵&#xff0c;會出現螞蟻線&#xff0c;然后按CtrlJ 是復制扣出來的圖層&#xff0c;右下角的框里會出現一個新圖層&#xff0c;注意每個圖層前邊有一個小框&#xff0c;點一下是出現眼睛就可以顯示該圖層在中央…

Ibatis - Open quote is expected for attribute {1} associated with an element type '

昨天晚上提交的代碼&#xff0c;今天運行起來&#xff0c;始終報錯&#xff1a; Open quote is expected for attribute "{1}" associated with an element type id,查了半天&#xff0c;覺得很奇怪。 回滾到昨天的代碼&#xff0c;運行正常。經過compare代碼&#…

Linux系統運維之路

九月份開始&#xff0c;半年內搞定運維&#xff0c;博客會慢慢的更新&#xff0c;vim編輯器&#xff0c;Nginx配置文件優化 運維基礎 運維基礎-Linux發展史、安裝、基本操作 運維基礎-用戶和組管理 運維基礎-文件權限管理 運維基礎-進程管理 運維基礎-IO 管道 運維基礎-查找壓…

設備無法獲得谷歌運行怎么辦_因此,您剛剛獲得了Google主頁。 怎么辦?

設備無法獲得谷歌運行怎么辦So you scored a Google Home for Christmas. That’s awesome because this is a killer little smart speaker that can do a lot of different things—in fact, it can be a little overwhelming. The good news is that we’ve got you covered…

IDEA Maven創建多個Module相互依賴

1、前言 在大型企業項目中&#xff0c;系統架構復雜多變&#xff0c;一個項目根本無法支撐起所有業務。為了提高項目擴展性、靈活性、重用性&#xff0c;封裝性&#xff0c;將項目分為多個Module是非常必要的。 這里就不說IDEA如何安裝了&#xff0c;安裝好IDEA后需要修改maven…

速達5000出現計算成本數據溢出的問題

算成本提示某貨品成本溢出處理方法&#xff0c;該問題是由于貨品成本異常&#xff0c;成本上億或者負億造成的&#xff1b; 1.首先通過語句&#xff1a;select * into tmp_goods from l_goods where ABS(aprice)>100000&#xff0c;把成本價格超過10萬的貨品資料取出&#x…

Win32頁上的所有控件屬性與方法

Win32頁上的所有控件。該頁控件是在32位Win系統中的一些基本控件&#xff0c;如果你選擇開發CLX程序&#xff0c;則在控件面板上不會顯示該頁TTabControl屬性DisplayRect&#xff1a;只定該控件客戶區的一個矩形HotTrack&#xff1a;設置當鼠標經過頁標簽時&#xff0c;它的字是…

收銀員英文縮寫_如何在沒有收銀員的蘋果商店購買東西

收銀員英文縮寫If you visit an Apple Store in the hopes of buying a new iPhone, iPad, or MacBook, you have to talk to an Apple employee, since all the expensive products are kept in the back. However, if it’s just an accessory you want, you can buy it with…

上傳文件 connection reset

適用于&#xff1a;Windows 7&#xff0c;Windows Server 2003&#xff0c;Windows Server 2008&#xff0c;Windows Server 2008 R2&#xff0c;Windows Vista 由于FTP的工作方式&#xff0c;在防火墻后面的服務器上使用文件傳輸協議&#xff08;FTP&#xff09;服務會產生一系…

分區表備份工具下載

分區表一般很少被破壞&#xff0c;然而一旦出問題&#xff0c;想要恢復卷上的數據就非常麻煩。這個工具軟件是我以前經常用的&#xff0c;卷分區被誤刪除后可在幾分鐘內得到恢復&#xff0c;非常方便。使用說明請參見&#xff1a;[url]http://www.sansky.net/html/2007-05-23-4…

【PaddlePaddle系列】報錯解決方法合集 (不定時更新)

1、PaddlePaddle使用CPU時正常運行&#xff0c;但是使用GPU時卻報出一堆錯誤信息&#xff0c;節選如下&#xff1a; paddle.fluid.core.EnforceNotMet: enforce allocating < available failed, 1835602936 > 1651048192at [/paddle/paddle/fluid/platform/gpu_info.cc:1…

算法:前K個最大的元素

前幾天&#xff0c;阮一峰 和 winter 在前端九部組織了一個互面小組&#xff0c;目的是為了分享和解答面試遇到的面試題&#xff0c;感興趣的可以了解一下。 下面我就把我回答的一個問題整理出來分享給大家。 問題描述 題目是&#xff1a;算法&#xff0c;前 K 個最大的元素。 …

php表單提交完返回,表單內容不清空解決方法

2019獨角獸企業重金招聘Python工程師標準>>> 我們經常在注冊的時候&#xff0c;填寫一大推信息以后在提交注冊的時候&#xff0c;因為某一項信息不正確&#xff0c;在返回的時候之前的填寫的內容全部沒有了&#xff0c;這樣會導致用戶喪失再次填寫的信息&#xff0c…

es6拼接字符串的方式。

文章&#xff1a;es6拼接字符串的方式。轉載于:https://www.cnblogs.com/Tpf386/p/9519007.html

word標尺灰色_如何在Microsoft Word中使用標尺

word標尺灰色Word’s rulers let you control the margins of your page and the indentation of paragraphs. They’re great for precisely lining up images, text, and other elements. If you’re printing a document, the rulers can help ensure that what you see on …