据我所知,QString的Qt文档没有谈及这个问题 有人可以详细说明这个吗?
答案 0 :(得分:3)
QString
为您希望它包含的数据动态分配内存,因此不会发生溢出。
如果您尝试使用QString::at(int position)
或类似内容访问其边界之外的字符串数据,您仍有可能使程序崩溃。
答案 1 :(得分:1)
您提出错误的问题:没有库代码可以避免缓冲区溢出。您可以以任何方式滥用任何数据结构。当您正确使用库代码并假设它没有错误时,请确保您可以安全地避免缓冲区溢出。但是,当你正确地编写每个非常低级别的C代码时,你也会如此。
要问的正确问题是:可以使用QString
或其他C ++容器类来帮助你避免由于愚蠢的错误导致的缓冲区溢出吗?是。但是,最终,它你了解缓冲区溢出的发生方式,并相应地审核您的代码,无论您使用哪种库。