First chance exception at 0x5919c8ec (msvcr100d.dll): 0xC0000005: Access violation reading location 0xfeeefeee
<p>I'm having this error while comparing two strings (using an overloaded operator).</p>

<p>The error happens here :</p>

<pre><code>void addEtu(node *Node, element *Etu){
    if (Node-&gt;Value == NULL)
        Node-&gt;Value = Etu;
    else{
        if (Node-&gt;left == NULL &amp;&amp; *Node &gt; *Etu) //This line specifically
            Node-&gt;left-&gt;Value = Etu;
        else if (Node-&gt;left != NULL &amp;&amp; *Node-&gt;left &lt; *Node)
            addEtu(Node-&gt;left, Etu);
        else if (Node-&gt;right == NULL)
            Node-&gt;right-&gt;Value = Etu;
        else
            addEtu(Node-&gt;right, Etu);
    }
}
</code></pre>

<p>And redirects to iosfwd; to this function specifically :</p>

<pre><code>static int __CLRCALL_OR_CDECL compare(const _Elem *_First1, const _Elem *_First2,
        size_t _Count)
        {   // compare [_First1, _First1 + _Count) with [_First2, ...)
        return (_CSTD memcmp(_First1, _First2, _Count));
        }
</code></pre>

<p>node is a structure containing two more nodes and 'value', a structure containing a some strings.
The overload is as follow :</p>

<pre><code>bool operator&gt;(const node&amp; V1, const node&amp; V2){
    if (V1.Value-&gt;Code &gt; V2.Value-&gt;Code)
        return true;
    return false;
}
</code></pre>

<p>The node taken into parameter by the function addEtu is the root (of a binary tree), it's initialized as follow :</p>

<pre><code>void Initialize(node *Root){
    Root-&gt;right = NULL;
    Root-&gt;left = NULL;
    Root-&gt;Value = NULL;
}
</code></pre>

<p>The error happens the second time addEtu is called.</p>

<p>I've no idea what's wrong, I Googled for about an hour and found nothing relevant to my specific error, as any help is appreciated.</p>
