배열정보 관련 질문입니다..
빵순
sizeof(int)의 역할아래에 보시면 /sizeof(int)를 하지 않으면 경고가 뜨는데 이 거의 역할이 뭔가요? 그리고 sizeof()/sizeof()는 출력도 안되는데 왜 써야되나요?질문 내용 :
#include stdio.h
void increarrelm(int arg[], const int len);
void arrprintf(const int arg[],const int len);
int main(void)
{
int arr1[3]={1,2,3};
int arr2[5]={1,2,3,4,5};
printf(*** 증가 이전 배열정보 출력 *** \n);
arrprintf(arr1, sizeof(arr1)/sizeof(int));
arrprintf(arr2, sizeof(arr2)/sizeof(int));
increarrelm(arr1, sizeof(arr1)/sizeof(int));
increarrelm(arr2, sizeof(arr2)/sizeof(int));
printf(*** 증가 이후 배열정보 출력 *** \n);
arrprintf(arr1, sizeof(arr1)/sizeof(int));
arrprintf(arr2, sizeof(arr2)/sizeof(int));
return 0;
}
void increarrelm(int arg[], const int len)
{
int i;
for(i=0;ilen; i++)
arg[i]=arg[i]+1;
}
void arrprintf(const int arg[], const int len)
{
int i;
for(i=0; ilen; i++)
printf(%4d, arg[i]);
printf(\n);
}
-
PrinceSs
int arr1[3]={1,2,3};
이런 배열이 있을때 배열의 요소가 3개입니다. 그래서 이 3을 구하기 위해 다음과 같이 계산합니다.
sizeof(arr1)은 4 * 3 = 12
sizeof(int)는 4
sizeof(arr1) / sizeof(int) = 12 / 4 = 3
이렇게 해놓으면 배열의 요소가 3개에서 다른 개수로 바뀌어도 자동으로 프로그램이 계산이 됩니다.
이렇게 하지 않을 경우에 배열의 요소가 4개로 바뀐 경우에는 3을 찾아서 전부 -
한별
이해가 좀 안되는데요..;;
-
집1어치워
배열의 크기를 계산하기 위해서입니다. 만약 배열의 크기가 변경되면 배열의 크기를 썻던 부분을 일일이 찾아서 고쳐야 하겠지만, sizeof 를 써서 계산하면, 배열의 크기만 바꾸면 되지 않겠어요?