如何为常量 std::vector<unsigned char 释放内存>
How to deallocate memory for const std::vector<unsigned char>
我使用的是一个库api,它返回conststd::vector。以下是代码
const std::vector<unsigned char> myvar = getData();
现在我有了myvar的清理内存。如何用c++实现这一点。
我正在尝试类似的东西
std::for_each(myvar.begin(), myvar.end(), [&](unsigned char mychar)
{
cout<<mychar<<",";
delete &mychar;
});
但由于堆积堆积而失败。
感谢您的投入。
STL使用RAII习惯用法,它在必要时分配内存并自动解除分配。
您不需要手动解除分配myvar
,只需让myvar
超出范围,所有内存都将自动解除分配。
// new scope, maybe function, maybe if/while scope:
{
const std::vector<unsigned char> myvar = getData();
}
// myvar will be deallocated
注意,总是成对调用new/delete
、new [] / delete[]
,您没有为任何myvar
成员调用new,您根本不需要调用delete
。
void myFunc()
{
const std::vector<unsigned char> myvar = getData();
} // <----- Like this
Vector将负责在其包含范围结束时销毁其自己的内容。记住,你不需要delete
,除非你new
。
您不必手动删除该向量的内容。向量的析构函数将负责所有必要的内存分配,并在对象超出范围时调用。例如,
{
const std::vector<unsigned char> v('a', 1000); // size 1000 vector
} // v's destructor called here.
这是使用标准库类型的众多原因之一。看看名称不太恰当的资源获取是初始化,或者RAII。
相关文章:
- 如何使用多次 memcpy 转换回 std::vector<unsigned char>?
- 错误:从'void*'到'const uint8_t* {aka const unsigned char*}'的转换无效 [-允许]
- C++ - 从 "int" 到 "unsigned char" 的缩小转换无效
- 让 'std::vector<unsigned char>' 从 'std::string' 中窃取内存
- 无法从'unsigned short [9]'转换为'char []'
- 使用外部变量会导致"unsigned char"错误LNK2001
- CPPrestsdk (Casablanca) JSON 值到 std::vector<unsigned char>
- memcpy unsigned char to int
- 有没有办法将 vector<unsigned char> 插入 postgresql 表中,具有 bytea 属性,没有 UTF8 编码错误?
- 没有匹配函数来调用"std::basic_ofstream<char>::write(std::string*, long long unsigned int)"
- 将数据从 vector<unsigned char> 传输到无符号 char[]
- 如何修复此 OpenCV 错误:断言失败((无符号)i < (无符号)cn) 在 cv::Vec<unsigned char,3>:::运算符 (), 文件
- 你什么时候会使用"signed char"而不是"unsigned char"?
- 错误:初始化时无法将'const unsigned char (*)[7]'转换为'const unsigned char (*)[]'
- 如何将std :: string传递到C 中的const unsigned char **
- 类型 "unsigned char *" 的参数与类型 "const char *" 的参数不兼容
- C 如何在功能调用中从char *转换为unsigned char *
- 从'byte* {aka unsigned char*}'到'dword {aka长unsigned int}'失去精度
- 'unsigned short var'与'unsigned char var [2]' C++
- C++ cast char * to unsigned char