下面的代码有什么问题?虽然它与DEV-C++编译,它抱怨:为什么ptrVec =新载体<const char*>编译失败
18 E:\项目\ pointer_test \ main.cpp中没有匹配用于 '运算符='“ptrVec =(((常量的std ::分配器&) ((常量 的std ::分配器)(&分配器()))), (((标准::矢量>)运算符 新(12U)),( - >的std ::矢量< _TP,_Alloc> :: vector with _Tp = const char *,_Alloc = std :: allocator ))) ector.tcc:131个候选是: 的std ::矢量< _TP,_Alloc> &的std ::矢量< _TP,_Alloc> ::运算符=(常量 的std ::矢量< _TP,_Alloc> &)[与_TP =常量字符*,_Alloc = 的std ::分配器]
19 E:\项目\ pointer_test \ main.cpp中碱
->' has non-pointer type
STD的操作数::矢量21 E:\项目\ pointer_test \ main.cpp中无法转换
ptrVec' to
bool'23 E:\ projects \ pointer_test \ main.cpp bas
->' has non-pointer type
STD电子操作数::矢量 24 E:\项目\ pointer_test \ main.cpp中没有匹配用于 '运算符=' 'ptrVec = 0'音符d:\开发-CPP \包括\ C++ \ 3.4.2 \位\ vector.tcc:131个候选是: 的std ::矢量< _TP,_Alloc> &的std ::矢量< _TP,_Alloc> ::运算符=(常量 的std ::矢量< _TP,_Alloc> &)[与_TP =常量字符*,_Alloc = 的std ::分配器]
#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类型是指针,该如何避免内存泄漏问题?
很清楚。:) – 2013-03-06 06:20:44