主题:关于c++的动态数组内存释放问题
请问一下各位高手,题目要求把vector里面的东西复制到具有相同对象数目的动态数组中,程序结果是出来了,可是结果出来后提示有错,我把delete【】p 删除后就没有问题,如果不删除就有问题,到底是为什么呢? 以下是程序代码,平台是vs2010,谢谢!
#include <iostream>
#include <vector>
#include <string>
using std::cout;
using std::cin;
using std::string;
using std::vector;
using std::endl;
int main()
{
vector<int> ivec1;
int a;
while (cin>>a)
ivec1.push_back(a);
int *p=new int[ivec1.size()];
for (vector<int>::iterator iter=ivec1.begin();iter!=ivec1.end();++iter)
{
*p=*iter;
cout<<*p<<" ";
++p;
}
delete [] p;
system("Pause");
return 0;
}
#include <iostream>
#include <vector>
#include <string>
using std::cout;
using std::cin;
using std::string;
using std::vector;
using std::endl;
int main()
{
vector<int> ivec1;
int a;
while (cin>>a)
ivec1.push_back(a);
int *p=new int[ivec1.size()];
for (vector<int>::iterator iter=ivec1.begin();iter!=ivec1.end();++iter)
{
*p=*iter;
cout<<*p<<" ";
++p;
}
delete [] p;
system("Pause");
return 0;
}