모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    ㅜ_ㅠ님의
    개인페이지입니다
    가입 : 13-11-29
    방문 : 369회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_11506
    작성자 : ㅜ_ㅠ
    추천 : 0
    조회수 : 501
    IP : 14.32.***.127
    댓글 : 3개
    등록시간 : 2015/06/22 19:37:16
    http://todayhumor.com/?programmer_11506 모바일
    c언어에서 sizeof로 나오는 크기를 이해할 수 없네요.

    아래의 코드에서 어째서 printf("sizeof(*items):%d\n",sizeof(*items));의 값이 8이 나오나요?
    item은 배열 items[]의 시작주소니까 포인터라는 건 알겠는데요.
    이 *item부분을 비주얼 스튜디오의 디버그의 조사식 창에 드래그해서 나오는 주소값을 메모리창을 띄워서 헥스값을 보니까 INSERT문자열이 아스키 코드값으로 저장되어 있더군요. 그래서 INSERT의 문자수를 줄이면 *item의 크기도 줄어들것 같아서 한번 소스코드의 {"INSERT", insert}부분을 
    {"IN", insert}으로 고치고 실행 해봐도 계속 printf("sizeof(*items):%d\n",sizeof(*items));에서 8이 나오더군요.
    아무리 생각해도 애초에 구조체를 지정할때 char *title;에서 title가 가리키는 주소에서 무조건 8바이트를 할당하는 것 같은데
    그 이유를 통 알수 없네요.
    혹시 아시는 분 계시면 그 이유를 가르쳐 주셨으면 좋겠네요.

    #include <stdio.h>

    typedef struct memu
    {
    char *title;
    void (*func)(void);
    }MENUITEM;

    void insert(void)
    {
    printf("insert\n");
    }

    void print(void)
    {
    printf("print()\n");
    }

    void search(void)
    {
    printf("search() 호출...\n");
    }

    void del(void)
    {
    printf("del() 호출...\n");
    }

    void end(void)
    {
    printf("end() 호출...\n");
    }

    void modify(void)
    {
    printf("modify() 호출...\n");
    }

    int main(void)
    {
    MENUITEM items[] = {
    {"INSERT", insert},
    {"PRINT", print},
    //{"SEARCH", search},
    {"MODIFY", modify},
    {"DELETE", del},
    {"END", end}
    };

    /*while(1)*/
    {
       printf("sizeof(*items):%d\n",sizeof(*items));
       printf("sizeof(items):%d\n",sizeof(items));
    /* puts("*** MENU ***");
    for(int i = 0; i < sizeof(items) / sizeof(*items); i++)
    printf("%d. %s\n", i+1, items[i].title);
    printf("choice : ");
    int no;
    scanf("%d", &no);
    fflush(stdin);
    items[no-1].func();*/
    }
    }

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    55
    c언어 #define문에서 "\"의 용도는 무엇인가요? [6] ㅜ_ㅠ 15/09/14 16:58 41 0
    54
    구조체를 함수로 만들면 메모리 할당을 할 수 있나요? [4] ㅜ_ㅠ 15/09/07 19:53 40 0
    53
    클래스의 크기 질문 [5] ㅜ_ㅠ 15/09/07 10:27 69 0
    52
    <tgmath.h> 헤더는 비주얼 스튜디오에서 사용할 수 없나요? [5] ㅜ_ㅠ 15/07/25 14:57 45 0
    51
    동적할당 예제 실행중 에러가 나는데.. [2] ㅜ_ㅠ 15/07/24 12:10 58 0
    50
    현재 c언어는 예전버젼과 완벽하게 호환이 않되나요? [3] ㅜ_ㅠ 15/07/19 20:07 43 0
    49
    키보드 버퍼안의 내용이 보고 싶은데 [5] ㅜ_ㅠ 15/07/19 05:39 41 0
    48
    c언어 fgets 함수에 대해서 질문 [13] ㅜ_ㅠ 15/07/06 20:30 31 0
    47
    C++에서 int등의 자료형의 생성자나 소멸자를 만들 수 있나요? [5] 본인삭제금지 ㅜ_ㅠ 15/06/26 16:09 30 0
    46
    c++에서 private속성의 정적멤버 변수는 무얼 의미하는 것이죠? [18] ㅜ_ㅠ 15/06/23 19:28 27 0
    c언어에서 sizeof로 나오는 크기를 이해할 수 없네요. [4] ㅜ_ㅠ 15/06/22 19:37 40 0
    44
    c언어에서 리턴값을 두개 이상 만들 수 없나요? [6] ㅜ_ㅠ 15/06/20 13:48 45 0
    43
    C프로그래밍에서 유효숫자를 무한대로 사용할 수 있나요? [7] ㅜ_ㅠ 15/06/18 18:23 45 0
    42
    클래스의 friend선언에 대해서 질문 [4] ㅜ_ㅠ 15/06/17 21:11 20 0
    41
    C++에서 맴버함수를friend로 지정할때 전역 함수로 지정해야 하나요? [1] ㅜ_ㅠ 15/06/17 17:41 22 0
    40
    생성자 선언시 레퍼런스형은 초기화 할 필요가 없나요? [2] ㅜ_ㅠ 15/06/15 12:56 21 0
    39
    공부할때 정독하면 않좋나요? [11] ㅜ_ㅠ 15/06/10 18:28 54 0
    38
    c++에서 복사생성자에 대해 질문 [4] ㅜ_ㅠ 15/06/06 00:33 35 0
    37
    api소스 디버깅할때 화면이 잘 나타나게 할 방법 없나요? [5] ㅜ_ㅠ 15/06/04 19:37 30 0
    36
    printf("%d")에서 %d는 int형을 나타내나요? [6] ㅜ_ㅠ 15/06/02 16:55 41 0
    35
    int형 변수의 자리수를 구하는 함수는 없나요? [6] ㅜ_ㅠ 15/06/01 17:20 55 0
    34
    C++기초 교재의 생성자와 소멸자 예제에서 에러가 나는데 [4] ㅜ_ㅠ 15/05/31 17:02 37 0
    33
    API 동영상 강의를 구매하는 편이 좋을까요? [6] ㅜ_ㅠ 15/05/26 20:06 19 0
    32
    비주얼 스튜디오의 디버거를 제대로 사용하고 싶은데 [6] ㅜ_ㅠ 15/05/26 00:07 32 0
    31
    같은 예제 반복 질문 죄송합니다만 api기초부분 질문입니다. [8] ㅜ_ㅠ 15/05/25 12:29 24 0
    30
    api 기본 예제 질문 [2] ㅜ_ㅠ 15/05/23 18:34 32 0
    29
    비주얼 스튜디오 구버젼을 사용해도 괜찮을까요? [4] ㅜ_ㅠ 15/05/23 15:47 36 0
    28
    비주얼 스튜디오에서 API예문을 디버깅할 수 있나요? [1] ㅜ_ㅠ 15/05/23 15:35 27 0
    27
    api에서 SetTextAlign 옵션 질문 [2] ㅜ_ㅠ 15/05/22 20:12 27 0
    [1] [2] [3]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈