【问题标题】:EXC_BAD_ACCESS on for loop (array function pointer)for循环上的EXC_BAD_ACCESS(数组函数指针)
【发布时间】:2017-05-06 23:27:47
【问题描述】:

以下代码导致 EXC_BAD_ACCESS 地址 0x0 错误 - 即使我以某种方式正确。它用于执行指向函数的数组。如果我用我拥有的号码更改sizeof(draw);,它就会按预期工作。

 for(int i = 0; i < sizeof(draw); i++)
        draw[i](i);

【问题讨论】:

    标签: c++ arrays for-loop


    【解决方案1】:

    sizeof(draw) 以字节数而不是项目数返回“draw”的大小。您可能正在寻找(sizeof(draw)/sizeof(draw[0]))

    【讨论】:

    • 如果draw 实际上是一个指针,它是一个数组被衰减的产物,这将无法正常工作。最好使用std::array 并放弃原始数组的使用,因为std::arraysize() 来确定元素的数量,并且在传递时不会衰减为指针。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多