#include <iostream>
int main()
{
int* a = new int[15];
a[0] = 42;
a[1] = 43;
std::cerr << a[0];
return 0;
}
gdb說a = 0xffffffff和'print a [0]'給'不能訪問內存地址',但爲什麼?如果在gdb之外運行,程序按預期輸出'42'。這裏發生了什麼?用'g ++ test2.cpp -gstabs + -O0 -o test2'編譯。gdb在簡單程序中報告錯誤的值。爲什麼?
你用'-g'試過了嗎? – 2011-05-02 21:17:17
你確定你在'new'被調用之前沒有嘗試訪問'a'嗎? – rlibby 2011-05-02 21:20:26