C++ EXC_对循环的访问错误(数组函数指针)
下面的代码导致EXC_BAD_访问地址0x0错误-即使我在某种程度上是正确的。它用于执行指向函数的数组。如果我更改C++ EXC_对循环的访问错误(数组函数指针),c++,arrays,for-loop,C++,Arrays,For Loop,下面的代码导致EXC_BAD_访问地址0x0错误-即使我在某种程度上是正确的。它用于执行指向函数的数组。如果我更改sizeof(draw)使用我的号码,它就像预期的那样工作 for(int i = 0; i < sizeof(draw); i++) draw[i](i); for(int i=0;i
sizeof(draw)代码>使用我的号码,它就像预期的那样工作
for(int i = 0; i < sizeof(draw); i++)
draw[i](i);
for(int i=0;i
sizeof(draw)
返回“draw”的大小,单位为字节数,而不是项目数。您可能正在查找(sizeof(draw)/sizeof(draw[0]))
sizeof(draw)
返回“draw”的大小,单位为字节数,而不是项目数。您可能正在查找(sizeof(draw)/sizeof(draw[0]))
如果draw
实际上是一个数组衰减的产物,那么这将无法正常工作。最好使用std::array
并放弃原始数组用法,因为std::array
具有size()
来确定元素的数量,并且在传递时不会衰减为指针。如果draw
实际上是一个指针,而该指针是正在衰减的数组的产物,则此操作将无法正常工作。最好使用std::array
并放弃原始数组用法,因为std::array
具有size()
来确定元素的数量,并且在传递时不会衰减为指针。