기초/C
memory space
ICT 기술 블로그
2011. 6. 17. 15:34
080484e4 ->문자열 code영역
08048400 ->main code영역
(e)ip = pc
코드영역에 메인 함수의 주소를 ip에 넣으면 프로그램이 실행된다.
|
stack |
|
code |
||||||
명령어 |
char carray [3] |
= |
{‘a’, ‘b’, ‘c’}; |
||||||
메모리 |
3byte |
|
3byte |
||||||
R/W여부 |
R/W |
|
R-Only |
char carray[] = {'a', 'b', 'c'}; //6바이트(stack영역 + code영역)
char astring[] = {'a', 'b', 'c', '\0'}; //8바이트(stack영역 + code영역)
char bstring[] = "abc"; //8바이트(stack영역 + code영역)
char *cstring = "abc"; // 4바이트(code 영역) ※ 출력용으로만사용할 경우
소스
결과
이유 code 영역에 저장된 bstring은 읽기 전용이라서 수정할 수 없음으로 segmentation fault 발생