情况1:声明一个vector空指针如下,会引发异常:
std::vector<int>* test_vector;
for (int i = 0; i < 10; i++)
test_vector->push_back(i);
异常提示为:
引发了异常: 读取访问权限冲突。
**std::_Vector_alloc<std::_Vec_base_types<int,std::allocator<int> > >::_Mylast**(...) 返回 0x4D9E00000015。
情况2:修改指针,代码如下:
std::vector<int>* test_vector;
std::vector<int> test_vector1;
test_vector = &test_vector1;
for (int i = 0; i < 10; i++)
test_vector->push_back(i);
则可以正常运行。
情况3:在堆上开辟vector指针,也可以正常运行:
std::vector<int>* test_vector = new std::vector<int>;
for (int i = 0; i < 10; i++)
test_vector->push_back(i);
delete test_vector;
为何情况1运行会报错?请各位指点。