#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