/* 

 * This class provides a skeletal IntArrayList object with only constructors

 * for the purposes of memory diagrams in wrapmain.cc.

 *

 * Warning: This code is incomplete and leaks memory!

 */

#define MAXSIZE 3

#include <cstdlib>

#include <cstring>


class IntArrayList {
  public:
    IntArrayList() : array_(new int[MAXSIZE]), len_(0), maxsize_(MAXSIZE) { }

    IntArrayList(const int *const arr, size_t len) : len_(len), maxsize_(len_*2) {
      array_ = new int[maxsize_];
      memcpy(array_, arr, len * sizeof(int));
    }

    IntArrayList(const IntArrayList &rhs) {
      len_ = rhs.len_;
      maxsize_ = rhs.maxsize_;
      array_ = new int[maxsize_];
      memcpy(array_, rhs.array_, maxsize_ * sizeof(int));
    }

  private:
    int *array_;
    size_t len_;
    size_t maxsize_;
};