繼承原理?
"wang","NO NAME"這類字面量(字符串常量一種)并非new出來的對(duì)象,是不可以被delete。
p_owner=new char[strlen(p)+1];
p_owner=p;
這里犯了很嚴(yán)重的錯(cuò)誤:
第一句分配了char[]對(duì)象并把其首地址賦給p_owner,但并沒有往里賦什么值,
第二句馬上把p的值(按上下文理解就是常量"wang"的首地址)賦給p_owner,等于把new出來的char數(shù)組給搞丟了。
這句p_owner=new char[strlen(p)+1];白忙活一場不說,還把一個(gè)在堆上分配的對(duì)象搞丟了而沒delete,會(huì)導(dǎo)致內(nèi)存泄露。
ps:內(nèi)存分配盡量遵循誰創(chuàng)建,誰delete的原則,盡量不要乞求別人給你delete,也盡量不要妄想一個(gè)未知的調(diào)用者給你傳個(gè)new出來的對(duì)象讓你進(jìn)行delelte。