I have made a class Graph when I have made a pointer in private access in the class named visited. In the constructor I have initialized the array with zero at all places but when I am checking if all the values are zero in another method ,It is showing garbage values in the array but when I print it in the constructor itself then it showing all zeroes.
#include<iostream>
#include<vector>
#include<list>
using namespace std;
class Graph {
private:
  int vertices,edges;
  vector <list<int>> graph;
  vector <int> vs;
  int *visited;
public:
  Graph (int vertices)
  {
    this->vertices = vertices;
    list <int>l;
    for (size_t i = 0; i < vertices; i++) {
      graph.push_back(l);
      vs.push_back(i);
    }
    edges=0;
// #######  made a new array, initialized all values with zeroes and assigned it to the instance variable visited  #########
    int a[vertices]={0};
    this->visited = a;
// ########  in the constructor it is showing correct values below  #######
    for (size_t i = 0; i < vertices; i++) {
      std::cout << this->visited[i] << ' ';
    }
    std::cout << '\n';
  }
  virtual ~Graph ()
  {
  }
  void showList()
  {
// just printing the graph in the form of adjacency list 
// it is working fine
    for (size_t i = 0; i < vertices; i++)
    {
      list <int>::iterator p = graph[i].begin();
      std::cout << i ;
      for (; p != graph[i].end() ; p++)
      {
        std::cout << " -> " << *p ;
      }
      std::cout << " -> NULL" << '\n';
    }
// ########  when I am checking the values here then it is printing garbage values 
    for (size_t i = 0; i < this->vertices; i++) {
      std::cout << this->visited[i] << ' ';
    }
  }
  void addEdge(int source, int destination)
  {
    graph[source].push_back(destination);
  }
};
int main()
{
  Graph g(6);
  g.addEdge(0,1);
  g.addEdge(0,2);
  g.addEdge(1,0);
  g.addEdge(1,3);
  g.addEdge(1,4);
  g.addEdge(2,0);
  g.addEdge(2,4);
  g.showList();
  return 0;
}
when i call the showList method the it should print the adjacenct list and all zeroes(contents of array named visited)
 
     
    