请教一个关于new指针地址的问题
#include <iostream>
using namespace std;
int main(){
vector<string> vstr;
string cinstr;
while(cin>>cinstr){
string *str=new string;
*str=cinstr ; //str=&cinstr;
cout <<str<<endl;
vstr.push_back(str);
}
system ("pause");
return 0;
}
就是这段代码 ,使用*str=cinstr
每次while循环new出来的指针地址是不一样的
然而使用str=&cinstr ; 每次new出来的指针地址却都是一样的
请问这其中有什么机制或者原理吗?
[解决办法]
用str=&cinstr时已经就把new出来的地址丢掉了,
循环里每次都用cinstr的地址把new出来的替换掉,当然看到的地址都一样啦,都是cinstr的地址而已
[解决办法]