메모리 주소 10진수로 출력
미해결
홍정모의 따라하며 배우는 C++
안녕하세요 c++입문 강의를 수강하고 있는 학생입니다. 강의 6:35 부근에서 array element의 주소값을 출력하기 위해 &를 입력하였고, 이렇게 되면 16진수 형태로 주소가 출력됩니다. 또한 int array[num_rows][num_columns] = { {1,2,3,4,5}, // row 0 {6,7,8,9,10}, // row 1 {11,12,13,14,15}, // row 2 }; 로 상단에 선언된 상태입니다. 10진수 형태의 주소값을 출력하기 위해 & 앞에 (int)를 붙였는데, 다음과 같은 오류가 발생합니다. [Error] cast from 'int*' to 'int' loses precision [-fpermissive] 이전 강의에서도 메모리 주소를 출력하는 예제가 있었는데, 그때에도 같은 오류가 발생했었습니다. (size_t)&(array[0]) (size_t)&(array[1]) (size_t)&(array[2])... 이렇게 (int) 대신 (size_t)를 사용하면 에러가 발생하지 않고 4byte단위로 메모리 주소가 10진수 형태로 출력되는데, (int)만 사용하면 이런 오류가 발생합니다. 원인을 알 수 있을까요?
- C++





