| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 439 人关注过本帖
标题:问题求助!
只看楼主 加入收藏
woaitudi
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-3-24
收藏
 问题点数:0 回复次数:4 
问题求助!
//...........从标准输入设备读入数据建立int型vector对象,然后动态创建一个与该
//...........vector对象大小一致的数组,把vector对象的所有复制给新数组
#include<iostream>
#include<vector>
using namespace std;
int main()
{vector<int> ivec;
int i;
//读入数据建立int型vector对象
cout<<"enter i to vector(Ctrl+Z to end):"<<endl;
while(cin>>i)
{ivec.push_back(i);
}
//动态创建一个与vector对象大小一致的数组
int *p=new int[ivec.size()];
//int *pia=p;                                     ............此行的//去掉
//把vector对象的所有复制给新数组
for(vector<int>::iterator index=ivec.begin();index!=ivec.end();++index,++p)      ........++p改为++pia
{*p=*index;                                                                     .........改为*pia=*index;
cout<<*p<<" ";                                    ............改为cout<<*pia<<" ";
}
delete [] p;
return 0;
}
这个程序在运行时会出现错误,但是将它改成右面的情况,运行时就不会出现错误。总的来说,我就是加了一个指针,
可是加和不加不是一样的吗?请高手解释一下!谢谢!
搜索更多相关主题的帖子: include 动态 
2008-04-10 19:20
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
p 是当数组用的..你后面又下移了.当你删除的时候它不再是数组首地址了...
#include<iostream>
#include<vector>
using namespace std;
int main()
{
    vector<int> ivec;
    int i;

    cout<<"enter i to vector(Ctrl+Z to end):"<<endl;
    while(cin>>i&&i!=0)
    {
        ivec.push_back(i);
    }
     
    int *p=new int[ivec.size()];

    for(vector<int>::iterator index=ivec.begin();index!=ivec.end();++index,++p)      
    {
        *p=*index;                                                                    
        cout<<*p<<" ";                                   
    }
    p=p-ivec.size();
    delete [] p;
    return 0;
}

学习需要安静。。海盗要重新来过。。
2008-04-10 19:36
yijing21
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-11-7
收藏
得分:0 
楼上是高人  一眼看出内存管理上的问题。
2008-04-10 20:03
woaitudi
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-3-24
收藏
得分:0 
哦,明白了!谢谢!
2008-04-11 07:45
woaitudi
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-3-24
收藏
得分:0 
哦,明白了!谢谢!
2008-04-11 07:46
快速回复:问题求助!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016187 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved