char阵列使用新的实例化后显示垃圾

char array displaying garbage after instantiation using new

本文关键字:显示 实例化 阵列 char      更新时间:2023-10-16

我尝试将以下4件事与char数组(in C )相连,这样我就可以返回数组,但是以及我也在数组中获得的那4件东西。任何人都可以帮忙

char* Guest::toString()
{
    char * p = new char[30];
    p[0] = firstName[0];
    p[1] = '.';
    p[2]=lastName[0];
    p[3] = '.';
        return p;
}

阵列的元素在创建时被非初始化,因此,在您的情况下,过去的p [3]仍然不可初学。试图访问这些非初始化元素将导致不确定的行为,这就是为什么您要获取垃圾数据。

我相信您可以通过使用:

初始化它
char * p = new char[30]();