#include <stdio.h>
#include <stdlib.h>
#define STARTSIZE 6
void removeElement(int* array, int size, int index) {
if (index < 0 || index >= size) {
printf("Index out of bounds\n");
return;
}
for (int i = index; i < size - 1; i++) {
array[i] = array[i + 1];
}
// Optionally, resize the array if needed
array = realloc(array, (size - 1) * sizeof(int));
}
int main() {
int size = STARTSIZE;
int* array = (int*)malloc(size * sizeof(int));
if (array == NULL) {
puts("malloc() error");
return -1;
}
// Initialize the array
for (int i = 0; i < size; i++) {
array[i] = ((i + size) * size) / (i + 1);
}
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
int indexToRemove = 2;
removeElement(array, size, indexToRemove);
size--; // Decrease the size after removal
printf("Array after removal: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
free(array);
return 0;
}
/*
run:
Original array: 36 21 16 13 12 11
Array after removal: 36 21 13 12 11
*/