포인터는 포인터 형에 따라서 배열과 완전 동일하게 취급됩니다.
char a[];
char *a;
두가지는 완전히 동일한 명령입니다.
그럼 "I'm azena"
이런 문자열(메모리)에서 azena만 뽑아 낸다고 가정하고 코드를 작성해보면
char *a = "I'm azena";
char b[10];
memcpy( b,&a[4],5);
// b가 가리키는 메모리 주소에 a가 가르키는 char 크기로
// 5번째(0부터 시작하므로) 위치의 char 크기의 메모리 5개를 복사
b[5] = 0; // 문자열의 끝은 반드시 0으로 끝나야 합니다. null-terminator
ShowMessage( b ); // 출력하여 확인
이런 식으로 작업을 하시면 됩니다.
문자열은 끝에 반드시 0을 넣어야 함을 잊지 마세요.
처음부터 배열을 memset()으로 0으로 초기화 하고 작업을 해도 됩니다.
c언어 초보 님이 쓰신 글 :
: 예를 들어 메시지 정보를 담고 있는 바이너리로 이루어진 M이라는 데이타가 있다면
: 데이타의
: 1-2 바이트에 해당하는 부분을 따로 아 메시지 형태
: 3-4바이트 부분은 메시지 폰트 이름 정보
: 5-6바이트 부분은 메시지 폰트 크기정보
: 6-n 바이트 부분은 메시지 내용이라고 했을때
:
: 어떤 함수를 어떻게 활용해야 M이라는 데이터에서 제가 원하는 메시지 정보 데이터를 각각 뽑아 낼 수 있는지
: 알고 싶습니다.
: 저한테는 프로그래밍 자체가 생소하다보니 많이 힘드네욤...^^
: 그래서 도움을 주십사 하고...이렇게 글을 올립니다.
|