배열 sizeof 질문합니다~
각티슈
2023.04.01
void output(int number[]){
printf( %d ,sizeof(number));
}
void main()
{
int number[10] = {3,4,5,6,7,8,9,10,11,12};
output(number);
printf( %d ,sizeof(number));
}
출력 결과는위에 함수쪽 출력으로 4밑에 출력으로 40 이 출력 됩니다. 왜 다르게 나올까요.
(어떤 크기의 배열이 들어와도 값을모두출력하게 만들려고 합니다. sizeof(number)/sizeof(int) 로...근데 함수쪽에서 하려고 하니 저부분쪽에서 안되서 궁금해서 올려봅니다.)
-
찬들
감사합니다 ㅋ 다르게 해봐야겠네요 ㅎ
-
MinA
1. 포인터라서 int 형의 사이즈 , 즉 4가 출력된거구요.
2. 배열개수*데이터형 = 4
넘겨줄려면 사이즈까지 같이 넘겨주세요. (보통 API 나 그런 함수에도 사이즈를 모르기때문에 사이즈까지 같이 넘겨주는 경우가 적지는 않아요.) -
구슬
아아 감사합니다.ㅋ
-
갤쓰리
1. 배열을 전달하는 게 아니라 배열의 첫번째 주소를 보내는 것. 배열과 포인트의 관계는 아실꺼라 생각
2는 말그대로 배열