질문을 요약하자면
main 함수에 배열 arr이 있사와요.
main이 보낸 포인터 변수를 MaxAndMin 함수에서 **maxPtr로 받았다고 치면, 이 **maxPtr을 MaxAndMin 함수에서 그대로 사용하면 안 되는 것이와요?
어차피 포인터는 함수를 넘나들며 이어져 있지 않사와요?
깨진 코드를 고쳐도 계속 수정이 안되서 캡쳐본 올렸사와요 ㅠㅠ
#include
int MaxAndMin (int ** maxPtr, int ** minPtr, int * arr, int n) {
int i;
int * max = &arr[0];
int * min = &arr[0];
for ( i=1; i
if ( *max
max = &arr[i];
if ( *min
min = &arr[i];
}
*maxPtr = max;
*minPtr = min;
}
int main(void) {
int * maxPtr;
int * minPtr;
int arr[5];
int i;
for ( i=0; i
scanf("%d", &arr[i]);
MaxAndMin (&maxPtr, &minPtr, arr, sizeof(arr)/sizeof(int));
printf("%d %d ", *maxPtr, *minPtr);
}
책이 병신
해당 댓글은 삭제되었습니다.
붙여넣는 과정에서 저렇게 됐사와요 제가 일일이 수정하겠사와요 !
저렇게 하는게 코드 가독성이 더 좋기 때문입니다. :)
보통 이런식으로 코드를 구성합니다. 결과 변수를 생성하고, 결과 변수에 결과값을 넣은 다음, 그 값을 리턴하는 거죠. int res; // do some work return res;
아아 그럼 매개 변수를 그대로 사용하는 것도 가능은 하다는 말씀이시군와요 이중 포인터라 헷갈려서 중간 과정이 틀렸나보와요 두 가지 방법 다 해보고 정석 정답대로 공부하겠사와요 ^ㅅ^ 감사한 씨리니 올림
그리고, 배게변수가 포인터 혹은 이중포인터인 경우는 조금 주의하셔야 합니다. 아직 메모리가 할당되어 있는 상태인지, 아닌지 여부를 알기 어렵기 때문입니다.
아직 메모리 할당이 안된 상태에서 포인터 접근을 했다가는 바로 세그폴트가 떨어집니다.
짧은 코드를 짜는 것보다 읽기 좋은 코드를 짜는 것이 훨씬 더 중요합니다. 항상 읽기 쉬운 코드를 짜도록 하세요.
저건 읽기도 ㅈ 같은 코드인데요
확실히.. 좀 읽기는 어렵네요. 아마도 게시판 기능때문에 코드가 이상하게 보이는 거라고 생각합니다. 실제로 코드를 보면 좀 나을 것 같네요.
씨리니 지금 학원 늦어서 다녀와서 코드 수정하겠사와요 ^ㅠ^ 총총
씨리니 학원 다녀왔사와요 ^ㅅ^ 총총 글 수정했사와요
for(뒤에 정리가 안되 보이는데
글 수정했사와요 ^ㅅ^
말투 커엽
커엽게 봐주셔서 감사하와요 ^ㅅ^