sizeof() 를 함수내에서 할 때와 다른 함수에서 할 때...

litwind의 이미지

int size(void *src)
{
   printf("in function: %d\n", sizeof(src));
   return 0;
}

int main()
{
   char a[7] = "abcdef";
   printf("in main: %d\n", sizeof(src));
   return 0;
}

이렇게 했더니..
결과가

in function: 4
in main: 7

이 나온네요.. 왜 그렇죠?

stoneshim의 이미지

검색 해보세요.

거의 동일한 내용이 있습니다.

http://bbs.kldp.org/viewtopic.php?t=2225&highlight=sizeof

우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자

khk의 이미지

int size(void *src)
{
printf("in function: %d\n", sizeof(src)); => void * 는 포인터이므로 4 byte입니다.
return 0;
}

int main()
{
char a[7] = "abcdef";
printf("in main: %d\n", sizeof(src)); => sizeof(a)의 오타아닌가요? sizeof(a)라면 7바이트 맞슴다~
return 0;
}

서지훈의 이미지

Quote:
int size(void *src) ===> int size(void **src)

위 부분처럼 변경을 한다음에...
size()를 호출할 땐...
size(&a);
이렇게 하면은 원하는 결과가 나오지 않을까 하는 생각이...

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);