char数组使用new实例化后显示垃圾

时间:2017-10-02 02:42:31

标签: c++ arrays

我尝试将以下4个内容连接到一个char数组(在C ++中),所以我可以返回我的数组,但随着这4个事情我也在我的数组中得到垃圾。任何人都可以帮助

char* Guest::toString()
{

    char * p = new char[30];

    p[0] = firstName[0];
    p[1] = '.';
    p[2]=lastName[0];
    p[3] = '.';
        return p;
}

1 个答案:

答案 0 :(得分:2)

数组的元素在创建时未初始化,因此在您的情况下,过去p [3]的所有内容仍然未初始化。尝试访问这些未初始化的元素将导致未定义的行为,这就是您获取垃圾数据的原因。

我相信您可以使用以下命令对其进行初始化:

char * p = new char[30]();