Xcode で C++ プログラムを実行したところ、「コントロールが非 void 関数の終わりに到達する可能性があります」という警告が表示されました。コードは次のとおりです。
Node* search(Node* head, int x)
{
if(!head)
return NULL;
else if(x == head->key)
return head;
else if(x < head->key)
search(head->lchild, x);
else
search(head->rchild, x);
}
Linux でコンパイルしたときに同じ警告が表示されましたが、正しい結果が得られました。しかし、Xcode では、結果は間違っていました。ちなみに、Visual Studioでは正解で警告も出ませんでした。