gpt4 book ai didi

c++ - 从函数返回后,我类的 const char* 有垃圾字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:59 27 4
gpt4 key购买 nike

类:

class myclass {
public:
myclass(void);

const char* server;

private:
char pidchar[6];
int pidnum;

};

函数

myclass parseINI(const char* file)
{
myclass iniOptions;
CSimpleIniA ini;
ini.SetUnicode();
ini.LoadFile(file);
const char* server = ini.GetValue("", "server", "");
iniOptions.server = server;
std::cout << server << "\n"; // Prints the correct value here
fflush(stdout);
return iniOptions;


}

在主函数中调用

int _tmain(int argc, TCHAR* argv[])
{

myclass options;
options = parseINI("myapp.ini");
std::cout << options.server << "\n"; // It prints junk here
return 0;
}

我做错了什么?

最佳答案

GetValue() 返回的const char* 可能属于ini 对象。当您退出 parseIni() 函数时,ini 超出范围并被销毁,这可能意味着您的指针不再有效。

尝试为 server 成员类型使用 std::string 而不是 const char*

关于c++ - 从函数返回后,我类的 const char* 有垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4339067/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com