小编Asi*_*aza的帖子

字符指针导致输出错误

我有关于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';

但它仍然无法正常工作

任何帮助表示赞赏......

拉扎

c++ char

2
推荐指数
1
解决办法
273
查看次数

标签 统计

c++ ×1

char ×1