gpt4 book ai didi

c++ - 使用 Boost 日期时间库和 Visual Studio 2008 时运行时检查失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:35:58 25 4
gpt4 key购买 nike

我是一名计算机科学专业的一年级学生,正在编写一个 C++ 程序,对随机分配的 float 数组进行冒泡排序,然后使用二分法搜索来查找数组中最后一个元素的值(为了在计时时保持一致性代码)。

我想为冒泡排序和二进制搜索的执行计时,但 C++ 标准时间库只会给我秒级的精度,这是不可用的,因为这段代码大部分时间都在 1 秒内执行。

我找到了 Boost,我正在尝试使用它作为一种方法,使用 Boost DateTime 库中的微秒时钟来获得亚秒级精度的代码执行时间。我使用的代码位于 http://pastebin.com/U8D0s2hb .当我执行此代码时,我从 Visual Studio 2008 中收到以下错误:

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

罪魁祸首似乎是将时间作为 ptime 对象获取,但我不知道为什么,因为我以前从未见过运行时检查失败错误。

感谢任何帮助,谢谢。

最佳答案

这看起来像是一个调用约定问题,但看起来它实际上是一个结构成员对齐问题。

您必须在客户端代码中使用默认的结构成员对齐方式。在项目的属性中,选择Configuration PropertiesC/C++Code Generation 并确保Structure Member Alignment 选项设置为 默认

参见 here关于这个问题的另一个问题。

关于c++ - 使用 Boost 日期时间库和 Visual Studio 2008 时运行时检查失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4415454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com