私は最近のインタビューでこれを尋ねられました。基本的には、無料の機能とnullの割り当ての機能を組み合わせる関数を作成しています。私は次のように答えました:
void main()
{
int *ptr;
ptr = new int;
ptr = newdelete(ptr);
}
(int*) newdelete (int *ptr)
{
delete(ptr);
return NULL;
}
したがって、実行後、関数から返すときにptrローカルtomainはnull値を保持しますnewdelete。NULLnewdelete関数で割り当てたばかりの場合、ptrローカルtonewdeleteはnullになり、ptrローカルtoはnullになりmainます。
私の解決策は正しかったと思います。インタビュアーもそれを受け入れました。しかし、彼は他の答えを期待していました。彼は、私が関数からを返さずNULL、それでも望ましい結果を達成すると主張していました。
それを達成する方法はありますか?私が考えることができるのは、ptrローカルのポインタへのポインタである別の引数を渡すことmainだけですが、なぜそれが私がしたよりも優れているのかわかりません!