我尝试将以下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;
}
答案 0 :(得分:2)
数组的元素在创建时未初始化,因此在您的情况下,过去p [3]的所有内容仍然未初始化。尝试访问这些未初始化的元素将导致未定义的行为,这就是您获取垃圾数据的原因。
我相信您可以使用以下命令对其进行初始化:
char * p = new char[30]();