QString对缓冲区溢出是否安全?

时间:2015-10-01 20:58:15

标签: c++ qt

据我所知,QString的Qt文档没有谈及这个问题 有人可以详细说明这个吗?

2 个答案:

答案 0 :(得分:3)

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

如果您尝试使用QString::at(int position)或类似内容访问其边界之外的字符串数据,您仍有可能使程序崩溃。

答案 1 :(得分:1)

您提出错误的问题:没有库代码可以避免缓冲区溢出。您可以以任何方式滥用任何数据结构。当您正确使用库代码并假设它没有错误时,请确保您可以安全地避免缓冲区溢出。但是,当你正确地编写每个非常低级别的C代码时,你也会如此。

要问的正确问题是:可以使用QString或其他C ++容器类来帮助避免由于愚蠢的错误导致的缓冲区溢出吗?是。但是,最终,它了解缓冲区溢出的发生方式,并相应地审核您的代码,无论您使用哪种库。