2 mot ssob moT_ssoB 于 2018.02.14 23:23 提问

c++ 类对象指针动态分配对象数值后如何移动
 #include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
    Student():num(0),sex('?'){strcpy_s(name,"???");}
    void set(char *p,int n,char z);
    void show();
private:
char name[5];
int num;
char sex;
};
void Student::set(char *p,int n,char z)
{
strcpy_s(name,p);
num=n;
sex=z;
}
void Student::show()
{
cout<<"name:"<<name<<endl;
cout<<"num:"<<num<<endl;
cout<<"sex:"<<sex<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{Student *s;
s=new Student[3];
 s->set("ss",1,'z');
 s->show();
 s++;
 s->set("cc",2,'y');
 s->show();
 s++;
 s->set("zz",3,'x');
 s->show();

 delete [3]s;
    return 0;
}

编译时没错,运行是出错了图片说明

2个回答

caozhy
caozhy   Ds   Rxr 2018.02.14 23:37
已采纳

s-=2;
delete[] s;

图片说明

moT_ssoB
moT_ssoB 原来忘记吧指针归位再在释放了 strcpy_s是应为我的编程环境是vs
3 个月之前 回复
caozhy
caozhy   Ds   Rxr 2018.02.14 23:38

上机已经验证,修改后无错误。(我的环境是vc++6,所以strcpy_s稍微修改了下,和你的问题无关)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!