malloc ?free
?與
new?? delete
(1)分配空間時(shí),malloc只給變量或?qū)ο螅〝?shù)組)在內(nèi)存中申請(qǐng)足夠的空間,而沒有創(chuàng)建類的對(duì)象。
????? 而new則構(gòu)造完整的對(duì)象
(2)釋放內(nèi)存時(shí),free只消除掉該對(duì)象指向的內(nèi)存,而原對(duì)象沒有調(diào)用析構(gòu)函數(shù)。
??? delete 在每個(gè)對(duì)象釋放前都要調(diào)用析構(gòu)函數(shù)。
格式:
char *p=(char *)malloc(10*sizeof(char));
free(p);
char *p=new char[10];
delete [] p;
//其中delete 格式中[ ]表示刪除相應(yīng)的對(duì)象數(shù)組;而缺少[ ]時(shí)表示刪除單一的對(duì)象。