none
大大帮忙看看为什么这段代码在2008里面不执行 RRS feed

  • 问题

  • #include <iostream>
    using namespace std;
    int main()
    {
     int *p=new int;
     cout<<"指针p保存的空间地址为:\t\t"<<p<<endl;
     p++;
     cout<<"自加后,指针p保存的空间地址为:\t"<<p<<endl;
     p--;
     cout<<"自减后,指针p保存的空间地址为:\t"<<p<<endl;
     p=p-2;
     cout<<"减2后,指针p保存的空间地址为:\t"<<p<<endl;
     return 0;
    }

    编译查不出错误,却执行不了。我试了其他没报错的也都不执行。郁闷了到底是怎么回事?我是刚安装的2008没动过任何设置的。怎么会这样?

     

    2010年3月20日 18:26

答案

  • 会不会是没有加上一个消除内存的语句?我将你的代码在VS2005的C++中执行通过

    释放内存的语句将

    return 0;

    换成:

    p=p+2;
    delete p;
    return 0;

    试试……

    • 已标记为答案 jcfu 2010年3月21日 3:58
    2010年3月21日 1:15