메모리데이터 불러오기
글쓴이: Clientserver / 작성시간: 월, 2016/10/31 - 10:08오후
선배님들 안녕하십니다~
결과값이 나오질 않아서 조언 부탁드립니다.
typedef struct _Packet { unsigned char op; char account[15]; char passwd[5]; signed int balance; } PACKET; PACKET Packet = {'1', "123-45-6789", "1111", 1300}; char pc = (char*)&Packet; int i = 0; for(i=0; i<sizeof(Packet);i++){ printf(" 메모리값 출력 : %x \n", pc++); }
Forums:
char *pc = (char*)&Packet;
char *pc = (char*)&Packet;
...
printf(" 8bit씩 끊어서 16진수로 출력 : %x \n", *pc++);
간단했네요 감사합니다~
간단했네요 감사합니다~
딱 세 군데 고쳤습니다.
어딜 고쳤는지 맞춰보세요. :)
char *pc
char *pc
0xff &
*pc++
3군데 맞나요?ㅎㅎㅎ
//////////////////////////////
char *pc = (char*)&Packet;
0xff & *pc++);
여기 두부분 왜 이렇게 해야하는지 의미를 가르쳐 주실수 있나요?
포인터 부분은 어려워서 잘 모르겠네요...ㅜ
printf("%x", *pc)
printf("%x", *pc)
이부분을
printf("%x", (unsigned int)(*pc))
으로 바꿔줘야(형변환) 좀 더 정확한 문법이 됩니다.
%x 포맷스트링은 unsigned int 타입을 받기로 되어있습니다.
시스템의 byte-order에 따라서 다른값이 출력될 수 도 있으니 유의하세요.
구경하다 적어봅니다. ㅇ_ㅇ;;
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기