次のプログラムがあり、マップに挿入するときに問題が発生します。
static std::map<std::string,void *> name_data_map;
std::map<std::string,void *>::iterator iter=name_data_map.find(name) ;
if( iter == name_data_map.end() )
{
tmp_data = (void *) malloc ( mt_get_dkstat_size() );
errorCode = getsproxy(tmp_data , name );
name_data_map.insert(pair<std::string,void *>(name,tmp_data) );
}
memcpy(*data, iter->second, mt_get_dkstat_size() ) ;
挿入後、tmp_data
破損しています。また、2 種類のインサートの違いを理解したいと思います。
name_data_map.insert(pair<std::string,void *>(name,tmp_data) );
name_data_map.insert(make_pair(name,tmp_data) );
高度な返信をありがとう