2015-01-12 1 views
-1

프로토 타입이 "void f (int, char *)"인 함수에 내장 문자 배열에 대한 포인터를 전달할 때 프로그램 컨트롤에 함수가 입력되지 않습니다.
함수에서 포인터 산술을 사용하여 배열 내부에서 포인터가 가리키는 위치를 증가시키고 그 주소의 값을 증가 시키려고합니다.
컨트롤에서 해당 기능을 무시할 수있는 이유는 무엇입니까? 내 프로그램에는 컴파일이나 논리적 오류가 없습니다.존재하지 않는 함수 헤더

+0

기호로 빌드하지 않았으므로 아무 것도 들어갈 수 없습니다. 해당 라이브러리 용으로 만든 .pdb 파일 (Visual Studio 용)이 있는지 확인 했습니까? 빌드 환경 (OS, IDE, 컴파일러 등)은 무엇입니까? – CoryKramer

답변

2

필자는 함수가 정상적으로 입력되었다고 생각하지만 예상대로 포인터가 변경되지 않았기 때문에 그렇지 않은 것처럼 보입니다. 포인터가 변경되지 않는 이유는 포인터를 참조로 전달하지 않기 때문입니다.

void f(int num, char *&ptr) 

후 외부에서 볼 수 함수 내에서 포인터로 변경하는 기능 서명을 변경 - 그렇지 않으면 그들은 단지 함수 호출 기간 동안 존재하는 포인터의 사본에 적용됩니다.

+0

또는 업데이트 된 포인터를 반환 할 수 있습니다. –