2017-11-17 16 views
-3

Xcode에서 프로그램을 컴파일 할 때 함수간에 전달하는 변수를 가리키는 "스레드 1 : EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0)"오류가 발생합니다.C++에서 포인터없이 함수 사이에 변수를 전달할 때 널 메모리 주소가 필요합니까?

이 주제와 관련하여 Stack Overflow에 관한 질문에 포인터와 참조가 "0"의 메모리 위치를 반환하는 포인터와 참조가 부적절하게 사용 된 오류를 보았지만 포인터 또는 참조를 사용하지 않습니다. , 전역 범위로 선언 된 변수.

여기에 포인터를 사용하는 것이 더 좋습니까?

내 프로그램은 입력 배열을 반으로 분할 한 다음 나란히 배열하여 인쇄하려고합니다. 하나의 int 함수와 두 개의 문자열 함수를 사용하여 int 인수를 받아 들여 종료합니다. return 0;

함수 외부에서 함수 밖에서 선언 된 변수를 전달할 때 특히 문제가 있습니까? 포인터와 참조를 사용하여 시도했지만 동일한 메모리 주소 오류를 반환합니다.

편집 : 문제는 return 0; 문자열로 정의 된 함수를 사용하고있었습니다. 함수 유형을 void로 변경하고 단순히 return;을 사용하여 함수를 종료했습니다. 나중에 메모리 액세스 문제가 수정되었습니다.

+0

@ John3136 사과드립니다. 이것은 단지 사물을 시도하고 단순화하기 위해 내 코드를 다른 예제로 재현하는 오류였습니다. 일을 쉽게하는 경우 전체 코드를 질문에 복사했습니다. 도와 줘서 고마워. –

+0

@RemyLebeau 유감스럽게도 다른 타이핑 오류가 있습니다. 함수는 원래 프로그램의 두 경우 모두에서 문자열이었습니다. 그건 내 잘못 이었어. –

+1

함수는 문자열을 반환해야하지만'return 0'을 포함합니다. 물론 0은 문자열이 아닙니다. –

답변

0

정의 된 함수 유형과 일치하는 반환 값은 @RemyLebeau 및 @BoPerrsson에서 제공 한 정답이었습니다.