【发布时间】:2018-02-11 13:07:10
【问题描述】:
我是 C++ 初学者。
当我学习过 C++ 类时,这个示例代码不起作用。
此代码被 NameCard 类构造函数中的 strncpy_s() 函数中断。
我尝试调试,但找不到原因。
你能帮帮我吗? This is full source code
祝你有美好的一天。
NameCard(char *name, char *phone, char *company, char *position)
{
this->name = new char(strlen(name) + 1);
this->phone = new char(strlen(phone) + 1);
this->company = new char(strlen(company) + 1);
this->position = new char(strlen(position) + 1);
strncpy_s(this->name, strlen(name) + 1, name, strlen(name));
strncpy_s(this->phone, strlen(phone) + 1, phone, strlen(phone));
strncpy_s(this->company, strlen(company) + 1, company, strlen(company));
strncpy_s(this->position, strlen(position) + 1, position, strlen(position));
}
【问题讨论】:
-
“没有工作”以什么方式?编译时会出错吗?如果是这样,请将错误复制粘贴到问题中。
-
感谢您的回答,抱歉我的解释不够。此代码的错误发生在运行时,而不是编译时...
-
什么错误发生在运行时?当您运行程序时会发生什么?您期望会发生什么?
-
我真正的唯一问题是你为什么不使用
std::string。从字面上复制需要对 C++ 字符串进行简单的赋值。 -
感谢@MichaelWalz 解决了。这是我的第一个问题,因为我出生了,但我非常感谢您的回复(JJJ,Arnav Borborah)。下一次,我会写一份更详细的问卷。 :)