title: ‘new’ undeclared (first use in this function)
body: <p>This code is for Hamiltonian Cycle
  I can't solve this error:</p>
  
  <pre><code>    In function ‘hamCycle’:
     error: ‘new’ undeclared (first use in this function)
           int *path = new int [V];
                       ^
   note: each undeclared identifier is reported only once for each function it appears in
   error: expected ‘,’ or ‘;’ before ‘int’
           int *path = new int [V];
                           ^
  </code></pre>
  
  <p>the Hamiltonian Cycle code is:</p>
  
  <pre><code>/*
   * C Program to Find Hamiltonian Cycle
   */
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;stdbool.h&gt;
  #define V 5
  
  void printSolution(int path[]);
  
  /* 
   * check if the vertex v can be added at index 'pos' in the Hamiltonian Cycle 
   */
  bool isSafe(int v, bool graph[V][V], int path[], int pos)
  {
      if (graph [path[pos-1]][v] == 0)
          return false;
     for (int i = 0; i &lt; pos; i++)
          if (path[i] == v)
              return false;
      return true;
  }
  
  /* solve hamiltonian cycle problem */
  bool hamCycleUtil(bool graph[V][V], int path[], int pos)
  {
      if (pos == V)
      {
          if (graph[ path[pos-1] ][ path[0] ] == 1)
              return true;
          else
              return false;
      }
  
      for (int v = 1; v &lt; V; v++)
      {
          if (isSafe(v, graph, path, pos))
          {
              path[pos] = v;
              if (hamCycleUtil (graph, path, pos+1) == true)
                  return true;
              path[pos] = -1;
          }
      }
      return false;
  }
  
  /* solves the Hamiltonian Cycle problem using Backtracking.*/
  bool hamCycle(bool graph[V][V])
  {
      int *path = new int [V];
      for (int i = 0; i &lt; V; i++)
          path[i] = -1;
      path[0] = 0;
      if (hamCycleUtil(graph, path, 1) == false)
      {
        printf("\nSolution does not exist");
          return false;
      }
      printSolution(path);
      return true;
  }
  
  /* Main */
  void printSolution(int path[])
  {
      printf("Solution Exists:");
      printf(" Following is one Hamiltonian Cycle \n");
      for (int i = 0; i &lt; V; i++)
          printf(" %d",path[i]);
      printf(" %d",path[0]);
  }
  
  int main()
  {
     /* Let us create the following graph
        (0)--(1)--(2)
         |   / \   |
         |  /   \  |
         | /     \ |
        (3)-------(4)    */
     bool graph1[V][V] = {{0, 1, 0, 1, 0},
                        {1, 0, 1, 1, 1},
                        {0, 1, 0, 0, 1},
                        {1, 1, 0, 0, 1},
                        {0, 1, 1, 1, 0},
                       };
     hamCycle(graph1);
  
     /* Let us create the following graph
        (0)--(1)--(2)
         |   / \   |
         |  /   \  |
         | /     \ |
        (3)       (4)    */
      bool graph2[V][V] = {{0, 1, 0, 1, 0},
                        {1, 0, 1, 1, 1},
                        {0, 1, 0, 0, 1},
                        {1, 1, 0, 0, 0},
                        {0, 1, 1, 0, 0},
                       };
      hamCycle(graph2);
      return 0;
  }
  </code></pre>
  
  <p>How can I solve this?</p>