我有以下自定义String
类的代码:
const String &String::operator+(const String &right)
{
String temp;
temp.length = length + right.length;
temp.sPtr = new char [temp.length + 1];
assert( sPtr != 0 );
strcpy(temp.sPtr, sPtr);
strcat(temp.sPtr, right.sPtr);
return temp;
}
哪里sPtr
是char*
。
但是,当我在两个字符串上执行此函数时,我会得到垃圾字符,如下所示:
]√Hâ«Ö“x˘" = "The date is" + " August 1, 1993
我一点也不知道发生了什么。我已经阅读了一些在结果字符串被连接之前得到垃圾字符的人的推荐,但我完全不明白为什么整个字符串都是垃圾字符。
任何帮助都会非常棒。提前致谢!