C 指针不存储值

C++ pointer not storing value

本文关键字:存储 指针      更新时间:2023-10-16
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 []的值。我已经通过引用发送了炭指针,但仍然无法正常工作。

for (int i = size +2; i < size + strlen(arr) + 3; i++)
        {
            baka[i] = arr[a];
            a++;
        }

构造函数和所有其他事情都是准确的。Baka将价值存储在第一个循环中,但在第二个循环中没有。即使在这里:

baka[size] = ' ';

有人可以为此提供帮助!

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

如果您使用的是std::string,则您的代码将简单得多:

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