0
以下代碼導致EXC_BAD_ACCESS地址0x0錯誤 - 即使當我以某種方式正確時。它用於執行指向函數的數組。如果我用我的號碼更改sizeof(draw);
,它只是按預期工作。EXC_BAD_ACCESS on for循環(陣列函數指針)
for(int i = 0; i < sizeof(draw); i++)
draw[i](i);
以下代碼導致EXC_BAD_ACCESS地址0x0錯誤 - 即使當我以某種方式正確時。它用於執行指向函數的數組。如果我用我的號碼更改sizeof(draw);
,它只是按預期工作。EXC_BAD_ACCESS on for循環(陣列函數指針)
for(int i = 0; i < sizeof(draw); i++)
draw[i](i);
sizeof(draw)
返回以字節爲單位,而不是項目數數「畫」的大小。您可能正在尋找(sizeof(draw)/sizeof(draw[0]))
如果'draw'實際上是一個已被腐蝕的數組的產物的指針,這將無法正常工作。最好使用'std :: array'並放棄原始數組的使用,因爲'std :: array'具有'size()'來確定元素的數量,並且在傳遞時不會衰減到指針。 – PaulMcKenzie