본문 바로가기

Language&Framework&Etc/C50

메모리 관리와 메모리의 동적 할당(25-2) 메모리의 동적 할당 언뜻 생각해보면 전역변수와 지역변수만 있으면 충분하다는 생각 그러나 프로그램을 구현하다 보면 이 둘이 아닌 다른 유형의 변수를 필요로 하게 됨 전역변수와 지역변수로 해결이 되지 않는 상황 아래는 문제가 있다 #include char* readusername(void) { char name[30]; printf("What's your name? "); gets(name); return name; // 무엇을 반환하는가? } int main(void) { char* name1; char* name2; name1 = readusername(); printf("name1: %s \n", name1); name2 = readusername(); printf("name1: %s \n", name2); return .. 2020. 12. 17.
메모리 관리와 메모리의 동적 할당(25-1) C언어의 메모리 구조 프로그램을 실행하면 해당 프로그램의 실행을 위한 메모리 공간이 운영체제에 의해서 미리 마련 그리고 이 메모리 공간 내에서 변수가 선언되고, 문자열이 선언 메모리의 구성 프로그램 실행 시 운영체제에 의해서 마련되는 메모리의 구조는 다음과 같이 네 개의 영역으로 구분 이렇게 메모리 공간을 나눠서 유사한 성향의 데이터를 묶어서 저장을 하면, 관리가 용이해지고 메모리의 접근속도가 향상. 서랍장의 수납공간이 나뉘어 있으면, 물건을 찾을 때 한결 수월하듯이 메모리 공간을 나누는 것이 좋음 메모리 영역별로 저장되는 데이터 유형 코드 영역(Code Area) 이름 그대로 실행할 프로그램의 코드가 저장되는 메모리 공간이다. 따라서 CPU는 코드 영역에 저장된 명령어들을 하나씩 가져가서 실행 데이터 영역(Data Area.. 2020. 12. 17.
파일 입출력(24-5) 임의 접근을 위한 '파일 위치 지시자'의 이동 추가 예정 2020. 12. 17.
파일 입출력(24-4) 텍스트 데이터와 바이너리 데이터를 동시에 입출력 하기 추가 예정 2020. 12. 17.