#include <stdio.h>
void deleteAtIndex(int arr[], int *size, int index) {
if (index < 0 || index >= *size) {
printf("Index out of bounds\n");
return;
}
for (int i = index; i < *size - 1; i++) {
arr[i] = arr[i + 1]; // shift element left to fill gap
}
(*size)--; // reduce size after deletion
}
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d", arr[i]);
if (i < size - 1) printf(" -> ");
}
printf(" -> null\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = 5;
int deleteIndex = 2;
printf("Original array:\n");
printArray(arr, size);
deleteAtIndex(arr, &size, deleteIndex);
printf("Array after deleting element at index %d:\n", deleteIndex);
printArray(arr, size);
return 0;
}if (index < 0 || index >= *size) {
check if index is valid to avoid errors
for (int i = index; i < *size - 1; i++) {
loop to shift elements left starting from deletion index
arr[i] = arr[i + 1]; // shift element left to fill gap
move next element to current position to fill gap
(*size)--; // reduce size after deletion
decrease array size after removing element
Original array:
1 -> 2 -> 3 -> 4 -> 5 -> null
Array after deleting element at index 2:
1 -> 2 -> 4 -> 5 -> null