Sicuro che il problema sia quello?
A me il seguente non crasha:
codice:
#include <algorithm>
#include <functional>
#include <iostream>
static void* crea_array () {
int* v = new int[1024];//esempio
return static_cast<void*>(v);
}
int main (void){
void * puntatore_void = crea_array ();
int* v = static_cast<int*>(puntatore_void);
std::fill_n (v, 1024, 3);
std::cout << std::count (v, v + 1024, 3) << std::endl;
delete []v;
std::cout << "bye bye..." << std::endl;
return 0;
}
codice:
$ g++ -Wall -Wextra -pedantic -ansi -Wconversion main.cpp
$ ./a.out
1024
bye bye...