哪位大虾帮忙看下,此程序出错在哪里(编译后有结果,但是最后会响一声)

xiaolangshou3 2012-11-01 11:50:37
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;

class CString
{
private:
char *p_str;//私有数据成员 p_str指针指向字符串
public:
CString(char* p_s)//构造函数 将参数值赋值给私有数据成员
{
p_str=new char[strlen(p_s)];
strcpy(p_str,p_s);
}

void print()
{
cout<<p_str<<endl;
}

~CString()
{
delete [] p_str;
}
};

int main()
{
char p[20];
CString* p_strPtr;

cout<<"Enter a string:";
cin>>p;

CString s1(p);
s1.print();
return 0;
}
...全文
151 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaolangshou3 2012-11-02
  • 打赏
  • 举报
回复
好的 再问个问题 结贴后是个什么情况?自己扣分 然后回帖人得分 如果是这样的话 那么刚注册后我有多少分
thefutureisour 2012-11-02
  • 打赏
  • 举报
回复
只要每天都回复一个帖子,就会有10分,所以分从来不是问题。
结贴后会把问题点数的一半返还给你。
[Quote=引用 2 楼 的回复:]

好的 再问个问题 结贴后是个什么情况?自己扣分 然后回帖人得分 如果是这样的话 那么刚注册后我有多少分
[/Quote]
qin_pp 2012-11-02
  • 打赏
  • 举报
回复
输入字符串的时,最后往往以“回车键”结束,如果不留够多一个变量的空间,就会出现访问越界的问题。
ichyan 2012-11-01
  • 打赏
  • 举报
回复
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;

class CString
{
private:
char *p_str;//私有数据成员 p_str指针指向字符串
public:
CString(char* p_s)//构造函数 将参数值赋值给私有数据成员
{
p_str=new char[strlen(p_s)+1];
strcpy(p_str,p_s);
}

void print()
{
cout<<p_str<<endl;
}

~CString()
{
delete [] p_str;
}
};

int main()
{
char p[20];
CString* p_strPtr=NULL;

cout<<"Enter a string:";
cin>>p;

CString s1(p);
s1.print();
return 0;
}


p_str=new char[strlen(p_s)+1]; 加1个长度留给\0

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧