vector越界访问
时间:2010-09-07 来源:snailshen
vector<string>vs;
cout<<"size:"<<vs.size()<<endl;
cout<<"vs[5]="<<vs[5]<<endl; 上述代码虽然vector的大小为0,但是也可以访问vs的第6个元素。 输出结果: size:0
vs[5]= 这样的代码存在潜在的风险.之所以可以访问,是由于vector的第6个元素的内存没有被其它变量占用。 同样char c[10]; cout<<c[100]<<endl; 也可以照常工作。但存在潜在风险。
cout<<"vs[5]="<<vs[5]<<endl; 上述代码虽然vector的大小为0,但是也可以访问vs的第6个元素。 输出结果: size:0
vs[5]= 这样的代码存在潜在的风险.之所以可以访问,是由于vector的第6个元素的内存没有被其它变量占用。 同样char c[10]; cout<<c[100]<<endl; 也可以照常工作。但存在潜在风险。
相关阅读 更多 +