cod*_*rog 1 c++ visual-studio-2010 visual-c++
类:
class myclass {
public:
myclass(void);
const char* server;
private:
char pidchar[6];
int pidnum;
};
Run Code Online (Sandbox Code Playgroud)
功能
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;
}
Run Code Online (Sandbox Code Playgroud)
从主函数调用它
int _tmain(int argc, TCHAR* argv[])
{
myclass options;
options = parseINI("myapp.ini");
std::cout << options.server << "\n"; // It prints junk here
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
在const char*
由归国GetValue()
可能属于ini
对象.当您退出该parseIni()
函数时,ini
超出范围并被销毁,这可能意味着您的指针不再有效.
尝试使用std::string
的server
成员类型来代替const char*
.