• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

포인터 질문이 있습니다

23.01.22 00:51 작성 조회수 230

0

포인터 값을 증가시키면 해당 포인터 자료형만큼 주소가 이동한다고 했는데요!

(ex. int* 면 4byte씩, char* 면 1byte씩)

근데 스택프레임에서의 주소 이동은 32bit면 4byte, 64bit면 8byte 단위로 이동하는걸로 알고 있는데, char* 형 이동 단위인 1byte씩 움직이는것도 가능한건가요???

ex.

char number = 1;

char* pointer = &number;

pointer += 2;

만약 위처럼 코딩이 되어있을 때, 메모리를 까보면 pointer 주소값이 2byte 증가해 있는데, 이렇게 되면 32bit 기반 스택프레임에서 4byte의 절반인 0.5블럭만 갖게 되는 건가요????

답변 1

답변을 작성해보세요.

0

스택이 push/pop될 때 기본 4/8바이트씩 움직이지만
당연히 1 바이트 단위로 다 주소가 있기는 하니
포인터로 1 바이트 단위로 움직이는 것 또한 가능합니다.