那最后释放内存的时候,一定要把p指向刚开始分配内存的位置嘛?
那最后释放内存的时候,一定要把p指向刚开始分配内存的位置嘛?
那最后释放内存的时候,一定要把p指向刚开始分配内存的位置嘛?
2016-09-19
#include <iostream> #include <stdlib.h> #include <string> #include <time.h> #include "Coordinate.h" using namespace std; int main() { Coordinate coor[3]; coor[0].m_iX=10; coor[0].m_iY=20; cout<< coor[0].m_iX<<" "<< coor[0].m_iY<<endl; Coordinate *p=new Coordinate[3]; for (int i = 0;i < 3;i++) { p->m_iX = 30+i*10; p->m_iY = 40+i*10; cout<< p->m_iX<<" "<< p->m_iY<<endl; p++; } p-=3;//你可以试试把p-=3改成2,或者1,系统会提示"rumtime library" delete []p; p=NULL; cout<<"运行时间为"<<clock()<<"ms"<<endl; system("pause"); return 0; }
#include "Coordinate.h" #include <iostream> #include <stdlib.h> #include <string> #include <time.h> using namespace std; Coordinate::Coordinate() { cout<<"Coordinate"<<endl; } Coordinate::~Coordinate() { cout<<"~Coordinate"<<endl; }
class Coordinate { public: Coordinate(); ~Coordinate(); int m_iX; int m_iY; };
如代码所示,是只有指回原来的位置才可以,不然会程序会崩溃
举报