【发布时间】:2010-01-21 11:08:15
【问题描述】:
假设我有一堂课
class person
{
char* name;
public:
void setname(const char*);
};
void person::setname(const char* p)
{
name=new char[strlen(p)];
strcpy(name,p);
name[strlen(p)]='\0';
}
我的问题是关于这条线的 名称=新字符 [strlen(p)]; 假设 p 指针指向字符串,即“zia”,现在 strlen(p) 将返回 3,这意味着我们有一个由 4 个字符组成的数组,即 char[3] 现在我将字符串复制到名称中,并在第 4 个位置,我放空字符,这有什么问题??????
【问题讨论】: