Non puoi passare un tipo come parametro ad una funzione, però puoi creare una macro ...


codice:
#include <stdlib.h>

#define new(T, n) ((T*) malloc(sizeof(T)*n))
#define delete free

int main()
{
	int * k = new(int, 10);
	delete (k);
	return 0;
}