如果sementation fault發生在STL的map中,而非你寫的程式,該怎麼辦?
google了一下,大家都說是memory access跨boundary,這其實是廢話,因為sementation fault本身就imply這個事實
個人有發生過一個case,提出來供大家參考
當我在struct中宣告一個map時,這個struct能否動態被配置記憶體並使用?
答案是可以,但是在該struct被new出來後,不可以用memset去清空
如下的struct,在new出來後,若用memset去清空該struct,再去使用該struct中的map,就會出現
"程式記憶體區段錯誤"
若不清空,則就可以正常使用
struct peer_ent {
unsigned long IP; // the IP of the remote peer.
map
map
unsigned long time; // 20100320: ????
unsigned char is_1st_pkt;
unsigned char dir; // when the peer's dir == the dir of 1st conn between the host and peer
unsigned char rsvr[2]; // reserved
};
.
沒有留言:
張貼留言