QString对缓冲区溢出安全吗?

Is QString safe about buffer overflow?

本文关键字:安全 溢出 缓冲区 QString      更新时间:2023-10-16

据我所知,QString的Qt文档并没有讨论这个主题。
有人能详细说明一下吗?

QString动态地为您想要包含的数据分配内存,因此不会发生溢出。

虽然你仍然有机会崩溃你的程序,如果你试图访问字符串数据以外的边界使用QString::at(int position)或类似的

您问错了问题:没有库代码可以避免缓冲区溢出。您可以以任何方式滥用任何数据结构。如果正确地使用库代码,并且假设它没有错误,那么当然可以避免缓冲区溢出。但是,当你正确地编写每一个非常低级的C代码时,你也会这样做。

正确的问题是:QString或其他c++容器类可以用来帮助避免缓冲区溢出由于愚蠢的错误?是的。但是,最终,它是在上,您了解缓冲区溢出是如何发生的,并相应地审计您的代码,无论您使用什么库。