Programa con vectores en C

Hacer un programa con dos vectores del mismo tamaño dado por el usuario. La
inicialización/reserva de memoria de los vectores se realizará en dos funciones
con los prototipos dados. Los vectores contendrán números enteros
introducidos por el usuario. Será necesario realizar una función para imprimir
los valores de los vectores.


#include <stdio.h>
#include <stdlib.h>

void funcion_modo1(int** ptr, int n);
int *funcion_modo2(int n);
void imprimir(int *ptr, int n);


int main(){
    int n,i,*puntero_modo1, *puntero_modo2, sum=0;
    printf("Enter number of elements: ");
    scanf("%d",&n);
  
    funcion_modo1(&puntero_modo1, n);
    puntero_modo2 = funcion_modo2(n);
    
    
    for(i=0;i<n;++i)
    {
        printf("Enter element of array [%d] ", i);
        scanf("%d",puntero_modo1+i);

    }
    for(i=0;i<n;++i)
    {
        printf("Enter element of array [%d] ", i);
        scanf("%d",puntero_modo2+i);
    }
    
    imprimir(puntero_modo1, n);
    imprimir(puntero_modo2, n);
    
    free(puntero_modo1);
    free(puntero_modo2);
    
    return 0;
}

void funcion_modo1(int** ptr, int n)
{
    *ptr=(int*)malloc(n*sizeof(int));  
    
    if (ptr == NULL) {
      printf("Error al capturar la memoria");
      exit(0);
    }

}

int *funcion_modo2(int n)
{
    int *ptr;
    ptr=(int*)malloc(n*sizeof(int));  
    if (ptr == NULL) {
      printf("Error al capturar la memoria");
      exit(0);
    }

    return ptr;
}


void imprimir(int *ptr, int n)
{
    int i;
    
    printf("\n Los valores del vector son ");
    for(i=0;i<n;++i)
    {
        printf("[%d],", *(ptr+i));
    }   
    printf("\n"); 

}