|
- #include<iostream>
- #include<string>
- using namespace std;
- class person{
- public:
-         char* pname;
-                 person(char *name)
-                 {       
-                 int len = strlen(name);
-                 pname = new char(len+1);
-                 memset(pname,0,len+1);
-                 strcpy(pname,name);
-                 cout << pname <<endl;
-                 }
-                 ~person(){
-                         if(pname){
-                                 delete[] pname;
-                                 cout << "析构调用";
-                         }
-                 }
- };
- int main(){
-        
-        
-         {
-                 person st1("123231321231312123312");
-                 person st2("213123");
-         }
-         system("pause");
-         return 0;
- }
复制代码
在类中我new了一块空间pname,之后析构进行delete删除掉。
如上代码我实例化了两个,一个st1 一个st2
问下各位前辈,为什么我的st2一旦调用delete就出现错误呢。。
难道是 st1和st2的pname是一块内存空间吗?
不应该是如下图这样的吗?我实例化一个对象 构造函数就new一块空间
|
上一篇: 有关屏幕截图教程的提问下一篇: 大佬们 字符串课程 string_util 这个类 有知道在哪下载的嘛 求大佬帮忙看看
|