#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
}