개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.24 06:50

sizeof 함수와 포인터 변수의 크기

목록
  • Bootstrap고수 1일 전 2025.03.24 06:50
  • 4
    1
안녕하세요 선생님, sizeof 함수에 대해 궁금한 점이 있습니다. sizeof 함수를 사용하여 변수의 크기를 구할 때, 포인터 변수의 크기는 0으로 나와요. 왜 이런 것일까요? 예를 들어 int *ptr; sizeof(ptr); 라고 하면 왜 0이 나오는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전

    sizeof 함수는 변수의 실제 크기를 반환하는 것이 아니라, 변수의 자료형 크기를 반환합니다. 포인터 변수는 주소 값을 저장하기 때문에, sizeof 함수는 포인터 변수의 실제 크기 대신 주소 값의 크기를 반환하지 않습니다.

    포인터 변수의 크기는 운영 체제와 컴파일러에 따라 다를 수 있습니다. 일반적으로 32비트 운영 체제에서는 포인터 변수의 크기는 4바이트, 64비트 운영 체제에서는 포인터 변수의 크기는 8바이트입니다.

    예를 들어, 32비트 운영 체제에서 int *ptr; sizeof(ptr); 라고 하면 sizeof 함수는 4바이트를 반환합니다. 이는 포인터 변수의 실제 크기인 4바이트를 반환하는 것이 아니라, 운영 체제의 포인터 변수 크기인 4바이트를 반환한 것입니다.

    포인터 변수의 크기를 구하려면, sizeof 함수를 사용하는 대신에 sizeof(void*)를 사용하면 됩니다. void*는 포인터 변수의 자료형을 나타내는 특수한 자료형입니다. sizeof(void*)를 사용하면 운영 체제의 포인터 변수 크기를 반환합니다.

    예를 들어, 32비트 운영 체제에서 int *ptr; sizeof(void*); 라고 하면 sizeof 함수는 4바이트를 반환합니다.

    2025-03-24 06:51

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,412건 / 4 페이지

검색

게시물 검색