私は関数ポインタの構文を理解するのに苦労しています。私がしようとしているのは、引数を取らずにvoidポインターを返す関数ポインターの配列を持つことです。誰も助けてくれますか?Cでの関数ポインタの配列
7
A
答えて
16
まず第一に、あなたはおよそ
cdecl
学ばなければならない:cdecl> declare a as array 10 of pointer to function(void) returning pointer to void void *(*a[10])(void)
あなたが手でそれを行うことができます - ちょうど内側からそれを構築:
a
ですアレイ:
機能へ
*a[10]
:
(*a[10])
引数を取りません:
(*a[10])(void)
再ポインタの
void *
を回し:あなたの配列を作る、その後typedef void *(*func)(void);
そして:
void *(*a[10])(void)
それはあなたがあなたの人生を容易にするために
typedef
を使用する場合より良いですfunc a[10];
+0
注:最初のリンクは非常に役に立ちます! – Ziezi
2
使用typedef
s
typedef void* func(void);
func *arr[37];
7
複合構文が複雑すぎると、通常、typedefは内容を消去します。
など。 typedefをせずに、私は次のようになります推測
typedef void *(* funcPtr)(void);
funcPtr array[100];
:
void *(* array[100])(void);
0
は、CおよびC++の関数ポインタの配列の例とexplainationsためhttp://www.newty.de/fpt/fpt.html#arraysをチェックしてください。
2
配列名でスタートし、あなたの方法を動作し、*
前[]
と()
バインド(*a[]
が(*f)()
がAで、*f()
ポインタを返す関数である、(*a)[]
は、配列へのポインタで、ポインタの配列であることを思い出します関数へのポインター):
farr -- farr
farr[N] -- is an N-element array
*farr[N] -- of pointers
(*farr[N])( ) -- to functions
(*farr[N])(void) -- taking no arguments
*(*farr[N])(void) -- and returning pointers
void *(*farr[N])(void); -- to void
関連する問題
- 1. 関数ポインタの配列C++
- 2. C++のメンバ関数への関数ポインタの配列の使用
- 3. メンバー関数ポインタの配列
- 4. C++で関数ポインタの配列をprivateにするには?
- 5. 配列ポインタと関数は
- 6. 配列と関数ポインタ
- 7. C - 文字列を返す関数へのポインタの関数へのポインタの配列
- 8. C++のポインタ配列
- 9. 固定メモリアドレスのCの関数ポインタのExtern配列
- 10. 配列へのポインタを関数に渡すときのセグメンテーションフォールト(C++)
- 11. C++配列ポインタ
- 12. forループ(配列関数ポインタ)のEXC_BAD_ACCESS
- 13. C++のポインタ関数から多次元配列を返す - CLI
- 14. 関数から2D配列へのポインタを返す - C++
- 15. C#の関数ポインタ
- 16. 関数ポインタCで
- 17. C++でのクラスメンバ関数ポインタ
- 18. 関数内でのポインタの配列の配置
- 19. Cのポインタの配列へのポインタの配列
- 20. cの配列へのポインタ
- 21. ポインタの配列とC++の配列へのポインタ
- 22. Cで関数ポインタを返す関数へのポインタの構文
- 23. C#関数ポインタ?
- 24. Cプログラミング、charポインタの配列
- 25. C++/OpenGL - 配列のポインタ
- 26. Cプログラム内の配列ポインタ
- 27. C++ 2D配列へのポインタ
- 28. C++の配列とポインタ
- 29. C配列/ポインタの問題
- 30. C++のポインタと配列
正常に動作していなくても、試したコードを投稿すると、より良い応答を得ることができます。それはあなたの努力を実証します。 –
これを確認してください[link](http://c-faq.com/decl/spiral.anderson.html) – Vikram