2012-04-02 15 views

cevap

8

benzer bir şey arayan bir std::vector:

#include <vector> 

typedef void (*FunPointer)(void *); 
std::vector<FunPointer> pointers; 

gerçekten statik bir dizi kullanmak istiyorsanız, onu ben yukarıdaki kod parçasında tanımlanan FunPointer kullanarak yapmak daha iyi olurdu :

FunPointer testArray[5]; 
testArray[0] = some_fun_pointer; 

i hala derleme zamanında ve tha sırasında dizinin boyutunu bilmiyorum dikkate alarak, vektör çözümü için giderdim olsa Eğer C

1
for(i=0;i<length;i++) 
A[i]=new node 

veya typedef ile

#include <vector> 

std::vector<someObj*> x; 
x.resize(someSize); 
5

C++ değildir ve t, yeni ifade Önemsiz: typedef olmadan

typedef void(*F)(void*); 

int main() { 
    F *testArray = new F[5]; 
    if(testArray[0]) testArray[0](0); 
} 

, bu edilir bir şekilde daha zor:

void x(void*) {} 
int main() { 
    void (*(*testArray))(void*) = new (void(*[5])(void*)); 
    testArray[3] = x; 

    if(testArray[3]) testArray[3](0); 
}