下面是gdb调试结果, 注意看p ©Config->roleDefine 显示地址是 0x3116030,赋值给引用后(const RoleDefineVector *) 0x311602c,赋值前后值竟然变化了, 这是怎么回事呢?求大侠指教
296 if ( !copyConfig) {
(gdb) p copyConfig
$1 = (CopyConfigBase ) 0x3115fe8
(gdb) p ©Config->roleDefine
$3 = (RoleDefineVector *) 0x3116030
(gdb) n
299 Map scene = MapManager::getInstance().loadMap(copyConfig->mapid);
(gdb) n
300 if ( !scene ) {
(gdb) p scene
$4 = (Scene ) 0x7ffeb406b848
(gdb) n
303 const RoleDefineVector& ndv = copyConfig->roleDefine;
(gdb)
305 HangCopy copy= new HangCopy( copyConfig, scene);
(gdb) p ndv
$5 = std::vector of length 38654705664, capacity 68719476736 = {Cannot access memory at address 0x311748000000000
(gdb) p &ndv
$6 = (const RoleDefineVector *) 0x311602c
(gdb) dis