下面的代码有什么问题?虽然它使用 dev-c++ 编译,但它抱怨:
18 E:\projects\pointer_test\main.cpp 与 'ptrVec = (((const std::allocator&)((const std::allocator )(&allocator()))) 中的 'operator=' 不匹配,((( std::vector > )operator new(12u)), (->std::vector<_Tp, _Alloc>::vector with _Tp = const char*, _Alloc = std::allocator, )))'
注意 d:\Dev-Cpp\include\c++\3.4.2\bits\vector.tcc:131 候选者是:std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=( const std::vector<_Tp, _Alloc>&) [with _Tp = const char*, _Alloc = std::allocator]
19 E:\projects\pointer_test\main.cpp
->' has non-pointer type
std::vector的基本操作数21 E:\projects\pointer_test\main.cpp 无法转换
ptrVec' to
bool'23 E:\projects\pointer_test\main.cpp
->' has non-pointer type
std::vector 的基本操作数 24 E:\projects\pointer_test\main.cpp 与 'ptrVec = 0' 中的 'operator=' 不匹配注意 d:\Dev-Cpp\include\c++\3.4.2\bits\vector.tcc:131 候选者是:std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=( const std::vector<_Tp, _Alloc>&) [with _Tp = const char*, _Alloc = std::allocator]
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
vector<const char*> ptrVec ;
ptrVec = new vector<const char*> ;
ptrVec->push_back("Hello");
if (ptrVec)
{
ptrVec->clear();
ptrVec = NULL;
}
system("PAUSE");
return EXIT_SUCCESS;
}
如果向量中的 emelemts 类型是指针,如何避免内存泄漏问题?