Hi i was creating a simple Vector Class for my studies. Just to store Variable LONG i kept everything simple. When i build nothing was return error/ warning. Then after run the program, it works but the program crash.
Code Vector.h
class Vector{
public:
    Vector();
    void add(long i);
    void getData();
private:
    long *anArray;
    long maxSize;
    long position;
    void reSize(int i);
};
Vector.cpp
    Vector::Vector(){
    maxSize = 2;
    anArray = new long[maxSize];
    position = 0;
}
void Vector::add(long i){
    if(position==maxSize-1)
        reSize(maxSize * 2);
    anArray[position] = i;
    position++;
}
void Vector::reSize(int i){
    long *temp = new long[maxSize];
    for(int i =0; i<maxSize; i++)
    {
        temp[i] = anArray[i];
    }
    delete[] anArray;
    anArray = temp;
}
void Vector::getData(){
    for(int i = 0; i<position; i++)
    {
        cout << "Element" << i+1 << " : " << anArray[i] << endl;
    }
}
Main
    int main()
{
    Vector vecStore;
    for(int i = 0; i <  1000; i++)
    {
        long a;
        vecStore.add(a = i + 1);
    }
     cout << "GET DATA _________ :: " << endl;
    vecStore.getData();
    return 0;
}
The program wouldn't crash if the input data small(e.g. 10-20) but when i change it to 100 or even bigger. the program sometime crash and sometime its not.
Did i make a mistake?
 
    