代码如下:
void CopyStr(char *&destination, char *&source) {
int sz = strlen(source) + 1;//此处引发异常!!
destination = new char[sz];
for (unsigned i = 0; source[i] != '\0'; i++)
destination[i] = source[i];
destination[sz - 1] = '\0';
return;
}
Data::Data(Data &adata) {
CopyStr(adata.P_name, P_name);
CopyStr(adata.address, address);
CopyStr(adata.number, number);
}
代码说明:Data类现在有三个char*成员,分别是P_name,address和number。
编译图片:
求大神解答,谢谢!!
首先char *&source这种参数改为
char *const &source
,其次CopyStr(adata.P_name, P_name),这种改为CopyStr(P_name, adata.P_name)。这是我测试的代码,直接可以运行: