我有关于char ptr输出的问题.以下是我试图执行的示例代码..
struct DeviceInfo{
char * name;
int id;
};
void testFunc(DeviceInfo *info){
char temp[50] = "test input";
info->name = temp;
}
void main(){
DeviceInfo deviceInfo;
testFunc(&deviceInfo);
std::cout<<"Output is "<<deviceInfo.name;
}
Run Code Online (Sandbox Code Playgroud)
输入我得到的主要是某种奇怪的....在调试时我发现当"test.name"传递给输出流时,它不仅提供垃圾输出,而且还改变了"名称"值"deviceInfo"对象为该垃圾值...这是一种测试场景,但在实际应用中,这个testFunc必须以相同的方式执行,即常量char字符串应该被赋予char ptr的名称.
我试着把'\ 0'放在char temp的末尾,就像这个temp [strlen(temp)] ='\ 0';
但它仍然无法正常工作
任何帮助表示赞赏......
拉扎