2016-09-12 9 views
1

class* object = NULL;があり、objectfunction(class* arg){arg = new class();}に渡した場合、object = new class()になりますか?オブジェクトのヌルポインタを関数に渡す

ポインタは単なるアドレスなので、私は尋ねる、右ですか?したがって、引数としてNULLポインタを渡して新しいオブジェクトを代入すると、アドレスはゼロから変更され、元のポインタは新しいオブジェクトを指しません。正しいですか?

答えて

2

この関数の内部では、argは新しいオブジェクトを指します。ポインタののコピーを渡すと、関数は終了し、それ以上はアクセスできなくなり、objectはそれを指しません(ただしそれでもNULLになります)。あなたがそれを修正する機能を有効にするために、オブジェクト(class*&)への参照、またはオブジェクトへのポインタ(class**)のいずれかを渡す必要

0

これは間違いありません。あなたは値にしてobjectを関数に渡しました。したがって、関数内の値を変更してもobjectには影響しません。関数がobjectを変更できるようにするには、参照または関数へのポインタをobjectに渡す必要があります。

関連する問題