c++ - VS 2008 和 VS 2017 之间的 Visual C++ 内存管理变化

标签 c++ c visual-studio memory buffer-overflow

我们最近将相当大的主要用 C 编写的软件(某些部分是 C++)从 Visual Studio 2008 迁移到 Visual Studio 2017。大多数软件源自 80 年代/90 年代初期。

在测试新的二进制文件时,我们不断遇到由内存溢出引起的错误。这些内存溢出似乎永远存在,但显然从未在旧版本的 MSVC 编译器下暴露出来。虽然发现并修复这些问题固然很好,但现在最好知道是什么原因导致这些问题被暴露。

从 2008 年到 2017 年,Visual C 的内存管理变化大吗?谁能向我指出有关此主题的文档?

最佳答案

最相关的编译器选项是/GS,它是缓冲区安全检查。这是有意尝试检测您所描述的问题类型,因为此类问题通常最终会成为可利用的安全问题。尽早崩溃是更好的选择。

关于c++ - VS 2008 和 VS 2017 之间的 Visual C++ 内存管理变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222084/

相关文章:

c - 分段故障

.net - MSBuild 15 NuGet 恢复和构建

c# - 在用户控件 asp.net 中声明事件?

C++逐行读取文件,有些行的列与其他行不同

c++ - gcc 相当于#pragma comment

c++ - 将 boost 与显式模板实例一起使用

c++ - 测试指针是否为空的最有效方法是什么?

c - 利用堆栈缓冲区溢出

c - C : compiler bug or defined behaviour? 中的类型混合整数除法

android - 更新 aar 文件不反射(reflect)更改