2017-01-30 147 views
0

的創建函數指針 void(*array[d1])(int);陣列函數指針作爲參數

如何傳遞其作爲函數的參數的陣列後?

callFunctions(int array[],int size){ 
    for(int i=0;i<size;i++){ 
     *array[i](0); 
    } 
} 

編譯口口聲聲說我的參數類型是錯誤的

+0

我會喜歡用'std :: array '的語法。 – Jarod42

+0

有趣,也許我只是太新手了,看到差異 –

+0

國際海事組織,它是更清楚,特別是傳遞/返回參數:void foo(const std :: array & a)''void'foo(void(*(&a)[d1])(int))''。 ''使用''''typedef'也可能被使用。 – Jarod42

回答

2

呼叫使用函數指針array的功能,如下列:

(*array[i]) (0); 

更新你callFunctions爲:

/* void */ callFunctions(void (*fptr[ ])(int), int size) 
{ 
    // (*fptr[ i ])(0); 
} 
+0

謝謝你,但仍然不喜歡我如何傳遞數組中的函數 –

+0

@ R.Velazquez抱歉沒有注意到。我更新了這篇文章。 – P0W

+0

非常有幫助,謝謝! –