word word::Addstr(char * &arr)
{
char * baka = nullptr;
if (sent != nullptr)
{
baka = new char[size + strlen(arr) + 3];
for (int i = 0; i < size; i++)
{
baka[i] = sent[i];
}
baka[size] = ' ';
int a = 0;
for (int i = size +2; i < size + strlen(arr) + 3; i++)
{
baka[i] = arr[a];
a++;
}
}
else
{
baka = new char[strlen(arr) + 1];
for (int i = 0; i < strlen(arr) + 1; i++)
{
baka[i] = arr[i];
}
}
word ustad(baka);
return ustad;
}
在第二个循环中,char * baka不存储arr []的值。我已经通过引用发送了char指针,但仍然无法正常工作。
for (int i = size +2; i < size + strlen(arr) + 3; i++)
{
baka[i] = arr[a];
a++;
}
构造函数和其他所有东西都是准确的。 Baka在第一个循环中存储值,但在第二个循环中不存储值。即使在这里:
baka[size] = ' ';
有人可以帮忙吗!
答案 0 :(得分:1)
baka[size + 1]
未初始化,可能是0
。大概您正在打印结果字符串,并且打印在空终止符处停止,因此您看不到字符串的第二部分。
如果您使用的是std::string
,它将容易得多,您的代码将简单地是:
std::string baka = sent + " " + arr;