Thread: itsy bitsy bug
View Single Post
  #1  
Old 03-25-2012, 11:20 PM
Truth Truth is offline
Banned


Join Date: Nov 2011
Location: h00t
Posts: 842
Send a message via ICQ to Truth Send a message via AIM to Truth Send a message via MSN to Truth Send a message via Yahoo to Truth
Exclamation itsy bitsy bug

Code:
if (NULL == vertex->right() == vertex->left())
      // wutdo
Seems legit, if both values equal NULL, we wutdo.

THAT IS UNTIL we take apart and realize how the compiler sees this statement differently from us. NULL is #define'd as 0. Boolean values are represented by 1 = true, 0 = false

So if the right vertex was NULL, it would evaluate that part of the equation to True before moving on. Now we would basically have the following:

Code:
if (1 == vertex->left())
Not what we want at all.

Likewise, if vertex->right() was not NULL, it would evaluate to false. So now we have:

Code:
if (0 == vertex->left()
This is also wrong, since right had a value.

Correct:

Code:
if (vertex->right() == NULL && vertext->left() == NULL)
[You must be logged in to view images. Log in or Register.]