我在最近的一次采访中被问到这个问题,基本上是编写一个函数来结合 free 和分配 null 的功能。我是这样回答的:
void main()
{
int *ptr;
ptr = new int;
ptr = newdelete(ptr);
}
(int*) newdelete (int *ptr)
{
delete(ptr);
return NULL;
}
因此,在执行之后,ptr本地 tomain将在我从newdelete函数返回它时保存 null 值。如果我刚刚分配NULL了 newdelete 函数,则ptr本地 tonewdelete将被清空,而不是ptr本地 to main。
我认为我的解决方案是正确的,面试官也接受了。然而,他期待着其他的答案。他坚持我不NULL从函数返回,但仍然达到预期的结果。
有没有办法做到这一点?我能想到的只是传递另一个参数,它是指向ptr本地指针的指针main,但我不明白为什么它比我所做的更好!