use*_*812 2 c++ memory vector std
请考虑以下C++代码:
using namespace std;
vector<char*> aCharPointerRow;
aCharPointerRow.push_back("String_11");
aCharPointerRow.push_back("String_12");
aCharPointerRow.push_back("String_13");
for (int i=0; i<aCharPointerRow.size(); i++) {
cout << aCharPointerRow[i] << ",";
}
aCharPointerRow.clear();
Run Code Online (Sandbox Code Playgroud)
在该aCharPointerRow.clear();行之后,aCharPointerRow应该删除所有字符指针元素.
上面的C++代码中是否存在内存泄漏?我是否需要显式释放分配给char*字符串的内存?如果有,怎么样?
谢谢你的任何建议.
上面的C++代码中是否存在内存泄漏?
没有内存泄漏.
既然你从未使用过new你就不需要打电话delete.如果首先分配了dynamicmemory,你只需要释放它.
请注意,理想情况下,您应该使用vector std::string.
std::vector<std::string> str;
str.push_back("String_11");
str.push_back("String_12");
str.push_back("String_13");
Run Code Online (Sandbox Code Playgroud)
你可以使用std :: string.c_str(),以防你需要获得底层字符指针(char *),这是很多C api期望的参数.
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |