블로그 이미지
LanSaid

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Recent Post

Recent Comment

Recent Trackback

Archive

2012. 4. 9. 14:54 Study/C++

수업내용




//*문자열 포인터 선언과 그 차이점
// 메모리에 있어서 상수가 저장되는 곳은 운영체제가 관리하므로 '읽기전용'으로만 사용가능하다
// 프로그램에 사용되는 데이터가 저장되는 영역의 종류 3가지
// 1. Data : 전역변수, 정적변수, 모든 상수
// 2. hip : 동적메모리할당
// 3. stack : 모든 지역변수
int main(void)
{
 char* str1="Hello";  // Data 영역에서 운영체제가 관리하는 읽기전용 메모리에 저장된 상수"Hello"의 시작 주소값을 포인터에 복사한 것임 그런고로 쓰기 권한이 없다.
 char str2[6]="Hello"; // Data 영역에서 "Hello"가 stack영역의 str2[6]으로 복사가 이루어졌으므로 stack영역에 생성된 공간(str2[6])으로 엑세스 하므로 읽기/쓰기에 제한이 없다.

 //*str1='A';   // 운영체제가 관리하는 Data영역에 쓰기권한으로 접근을 할 경우 불법적인 접근으로 간주하여 에러가 발생
 printf("%s\n", str1);
 printf("%s\n", str2);
 return 0;
}

posted by LanSaid