title: Unhandled exception at 0x770115de in : 0xC0000005: Access violation reading location 0xccccccc0 with recursive vector search
body: <p>Unhandled exception at 0x770115de in daedalus_1.4.exe: 0xC0000005: Access violation reading location 0xccccccc0.</p>
  
  <pre><code>string temp;
  string locName = "0";
  
  vector&lt;vector&lt;string&gt;&gt; l;
  int m = 100, n = 3; //vector dimension
  l.resize(m);
  for(int i = 0; i &lt; m; ++i) l[i].resize(n);
  
  temp.clear();
  
  if(line.substr(1, 17) == "Timing LocationID" &amp;&amp; arrayFull == true) {
      int i = 0; //starting char
      while (line[i++] != '='); //increment to next
      while (line[++i] != '"') temp += line[i];
      locName = findLocation(temp, 0, "", l);
  
  string findLocation (string temp, int index, string locName, vector&lt;vector&lt;string&gt;&gt; &amp;l)
  {
      if (temp == "*") return locName; // &lt;------errors here on return
      if (l[index][0] == temp) findLocation(l[index][1], 0, locName.insert(0,l[index][2]), l);
      else findLocation(temp, ++index, locName, l);
  }
  </code></pre>
  
  <p>This function loops through a 2xvector and returns a concatenation string made of parent->child vector cells </p>
  
  <p>these are from the call stack; looks like the string destructor</p>
  
  <pre><code>__CLR_OR_THIS_CALL ~basic_string()
      {   // destroy the string
      _Tidy(true);
      }
  
  void __CLR_OR_THIS_CALL _Tidy(bool _Built = false,
      size_type _Newsize = 0)
      {   // initialize buffer, deallocating any storage
      if (!_Built)
          ;
      else if (_BUF_SIZE &lt;= _Myres)
          {   // copy any leftovers to small buffer and deallocate
          _Elem *_Ptr = _Bx._Ptr;
          if (0 &lt; _Newsize)
              _Traits_helper::copy_s&lt;_Traits&gt;(_Bx._Buf, _BUF_SIZE, _Ptr, _Newsize);
          _Mybase::_Alval.deallocate(_Ptr, _Myres + 1);
          }
      _Myres = _BUF_SIZE - 1;
      _Eos(_Newsize);
      }
  </code></pre>