#include const int SIZE = 5; struct Foo { int data[SIZE]; Foo() { for (int i = 0; i < SIZE ; ++i) { data[i] = i+100; } } }; typedef Foo* fooptr; int main() { void* ptr = new Foo[3]; // Explicit type conversion (functional notation) // Function style casting is the same in behavior as c-style casting: (fooptr)ptr Foo* array = fooptr(ptr); for (int i = 0 ; i < 3 ; ++i) { for (int j = 0 ; j < SIZE ; ++j) { std::cout << array[i].data[j] << std::endl; } } delete [] array; return 0; }