이거 왜 출력값이 쓰레기 값이 나오나요? *(ptr+1)이거 대신 arr[i]이거쓰면 잘되던데요 ㅠ
댓글 14
익명(223.33)2018-07-05 22:24
*(ptr+1)을하면 arr배열 다음메모리에 든값아닌가여 - 프린이
고양이는역시검은고양이(kuroneko96)2018-07-05 22:35
여기 입코더뿐이라서 답못해줌
익명(121.158)2018-07-05 22:39
ptr++
Envil_Saintan(chlwnsgud7)2018-07-05 22:47
ptr엔 이미 5가 더해져부렀고
Envil_Saintan(chlwnsgud7)2018-07-05 22:47
그럼 ptr+5부터 ptr+9까지를 내놓겠네
Envil_Saintan(chlwnsgud7)2018-07-05 22:48
첫번째 포문까진 잘했음 각각 값에 2를 더 하고 싶었던 거잖?
근데 그렇게 ptr가 가르키는 주소값을 바꿔놓고 왜 다시 안바꾸는거야? 5번째집까지 들렸으면 1번집에 다시 돌아가야지 - dc App
아앗(112.160)2018-07-05 22:48
출력하는 for문 앞에서 다시한번 대입해주던가 아니면 for문 하나안에서 해결하던가
Envil_Saintan(chlwnsgud7)2018-07-05 22:49
난잘되는데? - dc App
익명(122.32)2018-07-05 22:54
int *ptr = arr // *ptr = arr[0]
첫번째 for문 후에는 *ptr = arr[4]
두번째 for문에서 *ptr은 arr[4]의 주소값에서 4(int자료형의 크기)만큼 더해진 메모리 주소에 있는 값을 뱉음
근데 거기는 초기화&변수선언을 안했기 때문에 쓰레기값이 있어서 쓰레기값을 뱉음
그래서 첫번째 for문 다 실행된 후에 ptr이 다시 arr[0]을 가리키게 해줘야 할거같아
ㅇㅅㅇ(106.246)2018-07-05 22:55
아하...이해했네요
ptr++로 ptr을 계속 증가시킨 상태에서 저걸써가지고 그 다음꺼 다섯개가나온거군요...제가 생각이 짧았네요 ㅠ
핫(58.77)2018-07-05 22:58
다들 감사합니다 ㅠ
핫(58.77)2018-07-05 22:59
화이팅하고 하나 팁 주자면 디버깅하는 습관 기르면 좋아 한 줄 한 줄 실행하면서 니 변수들한테 무슨 변화가 있는지 보면 잘못된 부분을 찾기 쉬워
*(ptr+1)을하면 arr배열 다음메모리에 든값아닌가여 - 프린이
여기 입코더뿐이라서 답못해줌
ptr++
ptr엔 이미 5가 더해져부렀고
그럼 ptr+5부터 ptr+9까지를 내놓겠네
첫번째 포문까진 잘했음 각각 값에 2를 더 하고 싶었던 거잖? 근데 그렇게 ptr가 가르키는 주소값을 바꿔놓고 왜 다시 안바꾸는거야? 5번째집까지 들렸으면 1번집에 다시 돌아가야지 - dc App
출력하는 for문 앞에서 다시한번 대입해주던가 아니면 for문 하나안에서 해결하던가
난잘되는데? - dc App
int *ptr = arr // *ptr = arr[0] 첫번째 for문 후에는 *ptr = arr[4] 두번째 for문에서 *ptr은 arr[4]의 주소값에서 4(int자료형의 크기)만큼 더해진 메모리 주소에 있는 값을 뱉음 근데 거기는 초기화&변수선언을 안했기 때문에 쓰레기값이 있어서 쓰레기값을 뱉음 그래서 첫번째 for문 다 실행된 후에 ptr이 다시 arr[0]을 가리키게 해줘야 할거같아
아하...이해했네요 ptr++로 ptr을 계속 증가시킨 상태에서 저걸써가지고 그 다음꺼 다섯개가나온거군요...제가 생각이 짧았네요 ㅠ
다들 감사합니다 ㅠ
화이팅하고 하나 팁 주자면 디버깅하는 습관 기르면 좋아 한 줄 한 줄 실행하면서 니 변수들한테 무슨 변화가 있는지 보면 잘못된 부분을 찾기 쉬워
ㄴ 네 너무 친절하시네요 감사합니다 ㅠ