第一种(正确):
char* a;
char* b="123131";
a=b;
第二种:
char* a=new char[10];
char* b="134123";
a=b;
第二种写法就错了,因为a占据的内存没有释放,又给它赋一个新的地址,它就不知道怎么办了,删除不是,不删除也不是。
第二种写法改正:
char* a=new char[10];
char* b="134123";
delete a;
a=b;
第三种:
char* a=new char[10];
char* b="134123";
delete a;
a=b;
delete a;//错误,因为a = b之后,a的地址已经是b的地址了,而b不是你来分配的,你不能delete。
分清堆和栈就知道了