Hi, I have the following class and main method:

class Employee
      vector<string> v;
      string name;
      int i;
      Employee(string &n): name(n), i(0){}
      void read(vector<string *> &vec)
           string n;
           for(int i = 0; i !=3; i++)
                       Employee e(n);

int main()
    vector<string *> v;
    Employee e;
    for(int i = 0; i !=v.size();++i)
            cout<<"In the main method loop"<<endl;
    return 0;

Now upon trying to access the vector after I am back in the main method, the program crashes. Does anyone know why?

Many thanks

delete line 17 because it is a do-nothing line.

line 18 is pushing a pointer to an object that disappears from scope as soon as the function returns to main() -- the pointers are immediately invalidated. Why use a vector of pointers anyway? Just do this: vector<string> vect; and everything will work as you expect.

many thanks

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.