C++ Vector问题.为什么输出全部是12,要得到0-11怎么改呢?我是在用g++编译的

[复制链接]
查看11 | 回复3 | 2013-4-13 10:19:40 | 显示全部楼层 |阅读模式
方法一:vectorompp;int array[12]; for ( i = 0; i < 12; i++ ) {
array=i;
ompp.push_back(&array);
}int k;for(k=0;k<ompp.size();k++)
printf("%d",*ompp[k]);方法二:vectorompp; for ( i = 0; i < 12; i++ ) {
ompp.push_back(new int(i));
}int k;for(k=0;k<ompp.size();k++){
printf("%...
回复

使用道具 举报

千问 | 2013-4-13 10:19:40 | 显示全部楼层
vectorompp;for ( i = 0; i < 12; i++ ) {ompp.push_back(i);}int k;for(k=0;k<ompp.size();k++)printf("%d ",ompp[k]);...
回复

使用道具 举报

千问 | 2013-4-13 10:19:40 | 显示全部楼层
因为i的地址一直不变,所以在循环结束的时候返回最后一次的值。vector里全是同样的地址值。而这个地址的内存值为12...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行