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