작성
·
290
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 바이트 단위로 움직이는 것 또한 가능합니다.