Classe:const char * dans ma classe a du caractère indésirable (s) après elle est renvoyée de la fonction
class myclass {
public:
myclass(void);
const char* server;
private:
char pidchar[6];
int pidnum;
};
La fonction
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;
}
Qualifiant de la fonction principale
int _tmain(int argc, TCHAR* argv[])
{
myclass options;
options = parseINI("myapp.ini");
std::cout << options.server << "\n"; // It prints junk here
return 0;
}
Qu'est-ce que j'ai fait de mal? IniOptions est situé sur la pile et est éliminé automatiquement au retour de la fonction.
Si 'CSimpleINIA' est modifiable, c'est nettement mieux. –
La modification suggérée est 'myclass', pas' CSimpleIniA'. – aschepler
+1 pour suggérer l'utilisation de std :: string qui va créer une copie locale. – Matt