[c]배열에 있는값이 출력안됩니다.

조회수 407회

배열에 저장된 값이 출력이 안되고 주소값만 뜹니다...

#include<stdio.h>
void main(){
    int sale[2][4] = {{63, 84, 140, 130},{157, 209, 251, 312}};
    int (*ptr)[4] = sale;

    for(int num1 = 0;num1 < 2;num1++){
        for(int num2 = 0;num2 < 4;num2++){
            printf("address : %u\tsale[%d][%d] = %d\n", ptr, num1, num2, *ptr);
            ptr++;
        }
    }
}

실행결과

address : 6422260       sale[0][0] = 6422260
address : 6422276       sale[0][1] = 6422276
address : 6422292       sale[0][2] = 6422292
address : 6422308       sale[0][3] = 6422308
address : 6422324       sale[1][0] = 6422324
address : 6422340       sale[1][1] = 6422340
address : 6422356       sale[1][2] = 6422356
address : 6422372       sale[1][3] = 6422372

원하는 결과

address : 6422260       sale[0][0] = 63
address : 6422264       sale[0][1] = 84
address : 6422268       sale[0][2] = 140
address : 6422272       sale[0][3] = 130
address : 6422276       sale[1][0] = 157
address : 6422280       sale[1][1] = 209
address : 6422284       sale[1][2] = 251
address : 6422288       sale[1][3] = 312

읽어주셔서 감사합니다.

  • int *ptr = &sale[0][0]; 이렇게 하면 되더라구요. 근대 차이를 모르겠습니다..... 전주영 2020.4.26 17:43
  • 일차원배열을 받는 포인터 4개 만들었기때문에 , 주소값이 16바이트씩 늘어나는것 아닐까요 알 수 없는 사용자 2020.4.27 23:48

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)