• 全部
  • 问答

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

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;
}
...全文
127 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
发帖
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2012-11-01 11:50
社区公告
暂无公告