11주차 강의 정리(한성태) - aksrud/3kingOfGod GitHub Wiki

문자열을 처리하는 방식

포인터

대체로 상수로 되어있는 문자열의 시작 주소를 이용한다. 이것 때문에 readonly변수가 되어 값을 변경 할 수는 없다. (상수 문자열)

배열

배열의 이름은 그 배열의 시작 주소이다. p == &p[0] 두개의 표현식은 동치이다. char array는 문자열을 넣으면 각 인덱스 해당하는 공간에 문자를 넣기 때문에 문자열의 문자 자체를 저장한다. 위에서 포인터를 이용하여 저장하는 방식과는 다르게 값을 변경할 수 있다. (변수 문자열) 아주 중요한 개념이다!

C언어 메모리 구조

code area

명령어, 소스코드 등등 다양한 것들이 저장되는 영역

GD

프로그램이 시작 할 때 생성 그리고 종료시 소멸한다. (전역, 정적 변수, 상수 등등이 있음)

STACK

함수가 호출되면 호출된 함수의 스택 프레임이 생성되고 거기에 지역 변수나 매개변수, 호출이 끝난 뒤 반환 될 주소등등 넣어진 데이터가 차례대로 저장되는 영역을 stack영역이라 한다.

HEAP

동적 메모리 할당으로 할당 받는 메모리 영역이다. C언어에서는 malloc같은 함수를 이용해 원하는 바이트 수 만큼 힙 메모리를 할당 받을 수 있다.