Я написал небольшой тест для проверки нулевого указателя, я упростил его с помощью int и 0, 1 вместо реальных классов, то, что я пытаюсь проверить, выглядит примерно так:
который в реальном мире будет return p ? p->callmethod() : 0;
bool TestTrueFalse();
void main()
{
int i = TestTrueFalse();
}
bool TestTrueFalse()
{
int one = 1;
int * p =&one;
*p = 0;
return p ? 1 : 0;
}
Теперь вы можете видеть, что, как только указатель снова становится равным 0, тест не пройден, почему?
что не так с этим? в чем решение?