Porfavor ya nose que hacer
Tenés unos serios problemas con los punteros el primero que ví
int i;
alfa=(int *)malloc(sizeof(int*)*(i));
que calculo que quisiste solo almacenar el número entero y no la dirección "basura" que contiene porque no está siquiera inicializada/asignada:
int i;
alfa=(int *)malloc(sizeof(int));
en el main igual, estás pasando valores de direcciones basura:
int *alfa, *beta;
captura_vector(alfa);
captura_beta(beta);
menu_principal(alfa,beta);
se soluciona así:
int alfa, beta;
captura_vector(&alfa);
captura_beta(&beta);
menu_principal(&alfa,&beta);
otra recomendación aunque no hay error en esto es que no incluyas definiciones ni mezcles librerías de C++ (iostream) con C (el resto)...
B#