我是C ++的初学者。我正在尝试实现复制构造函数。 我希望我遵循了复制构造函数的正确语法。 但每当我编译我的代码时,它都会完成而没有任何错误,但在运行时它会说“程序完成退出代码10”。 我在Clion IDE工作。当我在Mac终端上尝试时显示“总线错误:10”
我可以发现复制构造函数导致了这个问题。 我试着通过评论和运行程序,它运行正常,当我取消注释它时会引起上述问题。
请帮我弄清楚我哪里出错了。
谢谢。
这是我的代码:
protected void GridViewLehrling_RowDataBound(object sender, GridViewRowEventArgs e)
{
DropDownList DropDownListDienstleistungBackEnd = (DropDownList)GridViewLehrling.Rows[GridViewLehrling.SelectedIndex].FindControl("DropDownListDienstleistung");
HiddenField HiddenFieldGutscheinartIDBackEnd = (HiddenField)GridViewLehrling.Rows[GridViewLehrling.EditIndex].FindControl("HiddenFieldGutscheinartID");
}
答案 0 :(得分:0)
你是分配吗?
Person ::Person(const Person &p) {
strcpy(name, p.name);
age = p.age;
}
在将数据复制到成员之前,您应该为成员name
分配大小为strlen(p.name)+1
字节的内存。
答案 1 :(得分:0)
如果我仅从问题的标题回答您的问题,答案将非常简单。
但是首先,请先阅读How to create a Minimal, Reproducible Example,因为它有助于其他人了解和检查胺您的代码。
exit()
是终止内置函数,用于正常终止程序。
,它需要一个称为Status code
的参数。表示两个简单状态。
EXIT_SUCCESS
(macro),则表示成功,exit(0)
或exit(EXIT_SUCCESS)
。EXIT_FAILURE
,则表示失败,exit(1)
或exit(EXIT_FAILURE)
。因此对于exit(10)
或exit(1)
的任何其他值,它指示错误。
要了解有关exit()的更多信息,请参见此处:
现在从您的代码中可以看到您是
pointers
的新用户,因此 这对您阅读这篇文章很有帮助,因为它可以 您如何正确使用指针以防止out of memory
和memory leaks
和Segfault
错误的指导原则。