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 발생
'기초 > C' 카테고리의 다른 글
typedef (0) | 2011.06.20 |
---|---|
const (0) | 2011.06.17 |
2차원 배열과 포인터 (0) | 2011.06.17 |
배열과 포인터의 관계 (0) | 2011.06.15 |
배열 크기 알기 (0) | 2011.06.15 |