シリアル化に関するいくつかの実験を行っているうちに、オブジェクトが取得されたときにオブジェクト名が失われていることに気付きました。あなたは何が起こっているか私に見せてください?オブジェクトのシリアル化中に名前が失われる
void nDB::serialize(macro* myMacro) {
ofstream ar("macro.dat", ios::binary);
ar.write((char*)myMacro,sizeof(*myMacro));
}
macro* nDB::deserialize() {
macro* tmp_macro = (macro*)safemalloc(sizeof(macro));
ifstream ar("macro.dat", ios::binary);
ar.read((char*)tmp_macro,sizeof(*tmp_macro));
printf("My macro name is %s\n",tmp_macro->get_name());
return tmp_macro;
}
そして、これは私の出力は
My macro name is \uffffs\uffff>
あるものであるあなたは、あなたのオブジェクトの静的メモリを格納している、非常に
どのようにオブジェクト名を保存していますか? –
こんにちはDavid、私はオブジェクト名をchar * –