int main()
{
cout<<sizeof(int)<<endl;
cout<<sizeof(long long int)<<endl;
int *pInt =new int;
*pInt=10;
cout<<pInt<<endl;
cout<<"*pInt:"<<*pInt<<endl;
delete pInt;
long long int *pLong =new long long int;
cout<<pInt<<endl;
cout<<pLong<<endl;
*pLong=911111112222;
cout<<"*pLong:"<<*pLong<<endl;
*pInt=20;
cout<<"*pInt:"<<*pInt<<endl;
cout<<"*pLong:"<<*pLong<<endl;
delete pLong;
return 0;
}
在VS2010中编译 int占4字节 long long int 占8个字节,dengle pInt 释放了所指向的内存,但是没有释放指针本身, 分配给pLong指向的内存刚好是刚才释放的,与pInt指向的内存有重叠,赋值20的时候,影响了后面的值。 long int 的字节大小也是4
int main(){ cout<<sizeof(int)<<endl; cout<<sizeof(long long int)<<endl; int *pInt =new int; *pInt=10; cout<<pInt<<endl; cout<<"*pInt:"<<*pInt<<endl; delete pInt; long long int *pLong =new