折断的指针
2018-02-14 15:23
采纳率: 85.7%
浏览 1.5k

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条回答 默认 最新

  • threenewbee 2018-02-14 15:37
    已采纳

    s-=2;
    delete[] s;

    图片说明

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2018-02-14 15:38

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题