// ==========================================================================
// $Id: dynamic_array.cpp,v 1.5 2011/09/28 14:40:48 jlang Exp $
// CSI2372 example Code for lecture 3
// ==========================================================================
// (C)opyright:
//
//   Jochen Lang
//   SITE, University of Ottawa
//   800 King Edward Ave.
//   Ottawa, On., K1N 6N5
//   Canada. 
//   http://www.site.uottawa.ca
// 
// Creator: jlang (Jochen Lang)
// Email:   jlang@site.uottawa.ca
// ==========================================================================
// $Log: dynamic_array.cpp,v $
// Revision 1.5  2011/09/28 14:40:48  jlang
// Make dynamic and auto array look more similar
//
// Revision 1.4  2008/09/13 01:36:52  jlang
// Minor clarifications arrays and operators
//
// Revision 1.3  2007/09/18 00:24:50  jlang
// Added comments
//
// Revision 1.2  2006/09/23 00:00:55  jlang
// Added files for lecture 4
//
// Revision 1.1  2006/09/07 20:06:17  jlang
// Initial check-in lecture 0-2
//
// ==========================================================================
#include <iostream>

using namespace std;


int main()
{
  const int max = 1000;
  int numbers[max]; // automatic array -- good
  int* disguise_array = numbers;
  int* dynNumbers; 
  int arraySize = 0;
  cin >> arraySize;
  if ( !cin.fail() ) {
    dynNumbers = new int[arraySize]; // dynamic array on heap
    cout << "Allocated dynamic array of size: " << arraySize << endl;
    delete[] dynNumbers; // must delete to prevent memory leaks
    cout << "Deallocated dynamic array of size: " << arraySize << endl;
  }
  delete[] disguise_array; // do not delete automatic variables
  cout << "You won't see this in debug" << endl;
  return 0;
}
