2016-09-12 2 views
1

class* object = NULL;이 있고 objectfunction(class* arg){arg = new class();}으로 전달하면 object = new class()입니까?개체의 null 포인터를 함수에 전달

포인터가 바로 주소이기 때문에 나는 묻습니다. 따라서 NULL 포인터를 인수로 전달하여 새 객체를 할당하면 주소가 0에서 변경되고 원래 포인터는 새 객체를 가리 키지 않습니다. 맞습니까?

답변

2

함수 내에서 arg은 새 객체를 가리 킵니다. 그러나 포인터의 복사본을 전달할 때 함수가 끝나면 더 이상 액세스 할 수 없으며 object은 포인터를 가리 키지 않습니다 (그러나 여전히 NULL 임).

당신은,

을, ( class*&)를 개체에 대한 참조, 또는 ( class**을) 개체에 대한 포인터 중 하나를 통과를 수정할 수있는 기능을 활성화해야
0

맞습니다. 함수에 값으로 object을 전달했습니다. 따라서 함수의 값을 변경해도 object에는 아무런 영향을 미치지 않습니다. 함수가 object을 변경할 수있게하려면 함수에 object에 대한 참조 또는 포인터를 전달해야합니다.

관련 문제