Этот код должен работать.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *array;
int size = 0;
int position, value;
printf("How many elements do you want to add? ");
scanf("%d", &size);
printf("\nEnter the values: \n");
// allocate the array
array = malloc(size * sizeof(int));
// insert the elements
for(int i = 0; i < size; i++) {
scanf("%d", &array[i]);
}
// print the array
for(int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
// read the position
printf("In which position you want to enter the element? ");
scanf("%d",&position);
// resize the array
size++;
array = realloc(array, size * sizeof(int));
// set the position to the true value
position--;
// read the value
printf("Which element do you want to insert? ");
scanf("%d", &value);
// move the elements
for(int i = size - 1; i > position; i--) {
array[i] = array[i - 1];
}
// insert the array
array[position] = value;
// print the value
for(int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
}
Конечно, вы должны реализовать некоторую обработку ошибок.Особенно за выдел.