Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 string::clear 函数的描述中,它说:
clear:擦除字符串的内容,变成空字符串(长度为0个字符)。
在 list::clear 函数的描述中,它说:
clear:从列表容器中移除所有元素(被销毁),并让容器的大小为 0。
清除是否覆盖了字符串和列表的内存或只是释放它们?
这两个函数都不需要覆盖已擦除的数据。
内存不会被覆盖。它甚至不能保证被释放。
例如,如果你创建一个巨大的字符串并调用clear它,只会减少它的大小,但分配的内存可能仍然被保留。但是,如果字符串超出范围,它将被释放。
clear
std::list至少保证如果您清除列表,列表中的元素将被破坏。
std::list
因此,如果您的内存中包含敏感数据,您应该手动覆盖它们。