这个简单的指针相等测试怎么会失败?

时间:2009-06-26 16:13:00

标签: c++ pointers equality

void FileManager::CloseFile(File * const file)
{
    for (int i = 0; i < MAX_OPEN_FILES; ++i)
    {
        if ((_openFiles[i] == file) == true)
        {
            _openFiles[i] == NULL;
        }
    }
...

_openFiles是FileManager的私有成员,只是File *的数组 当在立即窗口中执行完全相同的测试时,我得到1的结果!?!

编辑 == true仅仅作为一个完整性检查添加!!

2 个答案:

答案 0 :(得分:4)

你有

 _openFiles[i] == NULL;

应该是

 _openFiles[i] = NULL;

答案 1 :(得分:2)

没有足够的业力来添加评论,但如果 cma 的答案是正确的(条件应该是作业),那么我希望原始帖子没有修复,或者至少有一张纸条已经修好了。在放弃并阅读答案之前,我盯着它看了很久,试图找到虫子。

任何能够随时删除此“答案”的人。