c++ - 定义 _CRT_SECURE_NO_WARNINGS 会导致 vector 析构函数崩溃

标签 c++ visual-c++ stl visual-c++-6 msvcrt

我正在处理从 Visual C++ 6.0 移植到 VC++ 9.0 (2008) 的遗留代码。我使用 _CRT_SECURE_NO_WARNINGS 预处理器定义禁用了安全 CRT 警告。但这导致 std::vector 析构函数崩溃。

使用 _CRT_SECURE_NO_WARNINGS 有什么问题吗?

最佳答案

它是怎么崩溃的?这听起来更像是你在一个位置有内存覆盖你的 vector 中的内存,然后在你的 vector 被释放之前释放它。我会用指针寻找任何地方。由于您现在使用的是符合标准的编译器,因此请将它们替换为 boost 共享指针或 boost 数组。任何可以消除对指针算法的需求的东西,其中使用迭代器会更安全。

关于c++ - 定义 _CRT_SECURE_NO_WARNINGS 会导致 vector 析构函数崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7120688/

相关文章:

c++ - 如何以编程方式将控制台字体设置为光栅字体?

c++ - 不同翻译单位的多种定义

c++ - 当 min 被定义为宏时如何调用 std::min()?

c++ - 嵌套模板类: Parameter default value not accepted

c++ - OpenCV 中的 GStreamer 不通过 UDP 发送视频数据

c++ - 如何在 Visual Studio 中设置编译标志/bigobj?

winapi - 使用对 GlobalLock()\GlobalUnlock() 的正确方法是什么?

c++ - 如何比较 strstr(LPCWSTR, CHAR*);

std::set 或 std::vector 的 C++ 迭代器

c++ - Opencv STL vector to Mat 用于矩阵乘法