-2
以下代碼會導致MSVC在調用方法vector :: empty時在stl vector類中拋出訪問衝突讀取位置。當我查看vector類中的數據時,它說它無法讀取關於大小,容量,尺寸和「[]」變量的內存,並且原始視圖是內存地址0xcdcdcdcd。內存訪問衝突讀取位置調用std :: vector :: empty()時
~Statement_Block(){
if (!statements.empty()){//throws exception
for (auto s : statements){
if (s){
delete s;
}
}
}
}
VS調試器使用'0xcdcdcdcd'模式表示未初始化的內存。所以在我看來,被破壞的對象還沒有被構建,或者之前已經被破壞過。您可以創建一個[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)並向我們展示? – 2015-04-06 12:57:00
我的猜測是某處'Statement_Block'要麼被銷燬兩次,要麼沒有正確初始化(甚至根本沒有初始化)。檢查你的代碼是否發生。 MSVC使用0xcdcdcdcd來標記未初始化的指針。 – 2015-04-06 12:57:25