/*
 * Copyright ©2026 Soham Pardeshi. All rights reserved.
 * Permission is hereby granted to students registered for University of
 * Washington CSE 333 for use solely during Summer Quarter 2026 for
 * purposes of the course. No other use, copying, distribution, or
 * modification is permitted without prior written consent. Copyrights
 * for third-party components of this work must be honored. Instructors
 * interested in reusing these course materials should contact the author.
 */

#include <stdio.h>   // printf
#include <stdlib.h>  // EXIT_SUCCESS

// attempt to copy src into a local dst array and return it (buggy!)
int* CopyArray(int src[], int size);

int main(int argc, char** argv) {
  int numbers[5] = {9, 8, 1, 9, 5};
  int* num_copy = CopyArray(numbers, 5);  // no -- buggy
  int i;

  for (i = 0; i < 5; i++) {
    printf("numbers [%d]: %d;  num_copy[%d]: %d\n",
           i, numbers[i], i, num_copy[i]);
  }
  return EXIT_SUCCESS;
}

int* CopyArray(int src[], int size) {
  int i, dst[size];  // OK in C99

  for (i = 0; i < size; i++) {
    dst[i] = src[i];
  }
  return dst;  // no -- buggy
}