首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VS2003中C++指针有关问题

2012-04-25 
VS2003中C++指针问题#include iostreamvoid main(){using namespace stdint * ptnew int[10]pt[0]0

VS2003中C++指针问题
#include <iostream>

void main()
{
using namespace std;
int * pt=new int[10];
pt[0]=0;
pt[1]=1;
pt[2]=2;
cout << " pt's address is " << pt <<" , pt's value is " <<*pt <<endl;
cout <<"pt[0]'s address is " << pt[0]<< " , pt[0]'s value is " << pt[0] <<endl;

//pt=pt+1;
cout << " Now \n";
//cout <<" pt's address " << pt <<" pt's values is " << *pt <<endl;
delete [] pt;
cin.get();
}
以上代码中,如果取消pt=pt+1的注释,则运行时会出错,但注释了以后运行不出错?
请教各位高手。

[解决办法]
pt是你new的指针位置,你修改了pt,然后delete自然出错
[解决办法]
我想是这样子。你最后delete[]p时,p的位置之前移动了一位。
释放时出错。可以这样:

C/C++ code
int *temp=pt;    pt=pt+1;    cout << " Now \n";    cout <<" pt's address " << pt <<" pt's values is " << *pt <<endl;    delete [] temp;    cin.get(); 

热点排行