본문 바로가기

전체 글

(109)
C언어에서의 지역 변수와 스택 메모리 당신이 이태원의 아주 바쁜 식당에서 음식을 만드는 알바생이라고 생각해보자. CPU라는 쉐프가 복잡한 식당의 주방에서 주문서를 받고 당신은 절차에 따라 음식을 만든다. 각 주문서는 손님의 취향에 따라 메뉴가 제각각이고 한 요리가 테이블에 서빙되면 주문서는 쓰레기통에 버려진다. 이는 마치 주문서가 지역변수이고, 함수가 완료되면 메모리 할당이 해제되면서 함수가 끝날 때 지역 변수가 폐기되는 것과 같다. C언어에서 함수 내의 지역 변수는 함수가 호출되는 동안에만 존재하고 함수가 반환되면 소멸된다. 함수가 종료되면 해당 함수에 할당되었던 스택 메모리는 해제되어 다른 목적으로 재사용될 수 있다. 다시 식당 알바생으로 돌아가자. 5명의 손님이 3번 테이블에서 재미있게 이야기를 나누다가 식사가 끝나고 주문서에 맞게 계..
#include <stdlib.h> #include 는 C 프로그래밍 언어에서 표준 라이브러리 헤더 파일 중 하나를 포함시키기 위해 사용한다. 는 표준 라이브러리의 일부로, 다음과 같은 다양한 유용한 함수와 매크로를 정의하고 있다. 메모리 할당 및 해제: malloc: 메모리 할당 free: 메모리 해제 realloc: 이미 할당된 메모리 크기 조정 calloc: 초기화된 메모리 할당 프로그램 제어: exit: 프로그램 종료 abort: 비정상적인 프로그램 종료 system: 시스템 명령어 실행 난수 생성: rand: 난수 생성 srand: 난수 생성기의 초기값 설정 환경: getenv: 환경변수의 값을 가져옴 setenv, putenv: 환경변수 설정 문자열 변환: atoi, atol, atoll: 문자열을 정수로 변환 strtol, s..
Chapter 25 : 메모리 관리와 메모리의 동적 할당 1. C 언어의 메모리 구조 옷장안의 서랍장에는 양말, 속옷, 하의, 상의를 구분하여 넣어두는 것과 같이 메모리 구조 역시 함수의 쓰임과 특징에 따라 메모리 구조를 구분하여 할당한다. 메모리의 구조 코드 영역 : 실행할 프로그램의 코드가 저장되는 메모리 공간이다. CPU가 코드 명령문을 하나씩 가져가서 실행한다. 데이터 영역: 데이터 영역에는 한번 선언하면 프로그램이 종료될 때까지 남아있는 변수들이 할당된다. 전역변수: 어느 함수에서나 접근이 가능한 변수 static 변수: 특정 함수 안에서만 동작 가능한 변수 스택 영역: 선언된 함수를 빠져나가면 소멸되는 변수들이 할당된다. 지역변수: 지역변수는 함수 내에서만 접근 가능한 변수 매개변수: 함수 호출 시에 외부로부터 받아오는 변수 힙 영역: 변수의 생성과..
전역변수, static 변수, 지역변수, 매개변수 보호되어 있는 글입니다.
Chapter 23. 구조체와 사용자정의 자료형 2 1. 구조체의 정의와 typedef 선언 # 'struct' 키워드를 생략할 수 있게 해주는 'typedef' 구조체는 여러 개의 다른 종류의 데이터를 하나로 묶는 방법이다. 예를 들어 '강아지' 라는 구조체에는 푸들, 치와와, 말티즈 등이 포함될 수 있고 '고양이' 라는 구조체에는 러시안 블루, 터키시 앙고라, 브리티시 숏헤어 등이 멤버로 포함될 수 있다. 일반적으로 c언어에서 구조체를 사용하려면 'struct' 키워드를 사용해야 한다. 그러나 매번 'struct 강아지', 'struct 고양이' 라고 쓰기 불편고 귀찮을 때 이를 'typedef'가 해결해준다. ' typedef struct { ...} 강아지; ' 라고 선언하면, 그 다음부터는 '강아지'만 사용해도 된다. # typedef 사용안할 ..