C ++指针未存储值

时间:2019-03-19 18:15:15

标签: c++

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] = ' ';

有人可以帮忙吗!

1 个答案:

答案 0 :(得分:1)

baka[size + 1]未初始化,可能是0。大概您正在打印结果字符串,并且打印在空终止符处停止,因此您看不到字符串的第二部分。

如果您使用的是std::string,它将容易得多,您的代码将简单地是:

std::string baka = sent + " " + arr;