Mental Model
Removing the last item from a list means just ignoring it from now on.
Analogy: Think of a stack of plates where you only take the top plate off to remove it.
Index: 0 1 2 3 4 Array: 10 -> 20 -> 30 -> 40 -> 50 Size: 5
Index: 0 1 2 3 4 Array: 10 -> 20 -> 30 -> 40 -> 50 Size: 5
10 -> 20 -> 30 -> 40 -> 50, size=5
10 -> 20 -> 30 -> 40, size=4
10 -> 20 -> 30 -> 40, size=4
10 -> 20 -> 30 -> 40 -> null
#include <stdio.h> void deleteAtEnd(int arr[], int *size) { if (*size == 0) { printf("Array is empty, nothing to delete.\n"); return; } (*size)--; // reduce size by 1 to delete last element } 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[5] = {10, 20, 30, 40, 50}; int size = 5; deleteAtEnd(arr, &size); printArray(arr, size); return 0; }
if (*size == 0) {(*size)--;for (int i = 0; i < size; i++) {if (*size == 0) {
(*size)--;