関数へのポインタの配列を取得したいが、配列のサイズが最初から分かっていない場合はどうすればよいですか?私はそれをする方法があるのか不思議です。新しいステートメントを使うか、それとも別のものを使う。あなたが使用することができ機能の配列を動的に作成する方法は?
void (* testArray[5])(void *) = new void()(void *);
関数へのポインタの配列を取得したいが、配列のサイズが最初から分かっていない場合はどうすればよいですか?私はそれをする方法があるのか不思議です。新しいステートメントを使うか、それとも別のものを使う。あなたが使用することができ機能の配列を動的に作成する方法は?
void (* testArray[5])(void *) = new void()(void *);
に似たもの探しstd::vector
:
#include <vector>
typedef void (*FunPointer)(void *);
std::vector<FunPointer> pointers;
あなたが本当に静的配列を使用したい場合は、私が上記のスニペットで定義されたFunPointer
を使用して行う方が良いでしょう:
FunPointer testArray[5];
testArray[0] = some_fun_pointer;
私はまだコンパイル時に配列のサイズがわからないことを考慮して、あなたがC++を使用してtypedef
ではないC.
for(i=0;i<length;i++)
A[i]=new node
または
#include <vector>
std::vector<someObj*> x;
x.resize(someSize);
さtは、新しい表現が簡単です:typedef
なし
typedef void(*F)(void*);
int main() {
F *testArray = new F[5];
if(testArray[0]) testArray[0](0);
}
、それはややより困難である。
void x(void*) {}
int main() {
void (*(*testArray))(void*) = new (void(*[5])(void*));
testArray[3] = x;
if(testArray[3]) testArray[3](0);
}