Programming/Computer Science Fundamentals

[C프로그래밍] 기말고사 대비 최종점검

Sujin Lee (Daisy) 2022. 6. 18. 05:29

 

* 포인터

 - 포인터를 이용한 메모리 동적 할당

 

* 상수

 - 8진 상수: 숫자 앞에 0을 붙인다

 - 16진 상수: 숫자 앞에 0x를 붙인다 

 - 문자형 상수는 내부적으로 해당 문자의 ASCII 코드값이 사용된다 

 - 실수형 상수는 소수형식과 지수형식으로 표시할 수 있다

 

 

* 출력양식변환기호 

%문자 변환 형식 부호 인자의 자료형
%d 10진 정수 O char, short int, int
%ld 10진 long 정수 O long int
%lld 10진 long long 정수 O long long int
%u 10진 정수 X unsigned int
%o 8진수  X unsigned int
%x, %X 16진수  X unsigned int
%f 10진 부동소수점   float, double
%lf 10진 부동소수점   long double
%e, %E 지수    float, double
%c 한 문자   char, short int, int
%s 문자열   char *
%p 포인터 주소값   void * 

 

 

* 메모리 동적할당 함수

1. malloc() 함수

  - 형식: void * malloc(size_t number_of_bytes); 

  - 기능: number_of_bytes에서 주어지는 크기만큼 기억 공간을 동적으로 할당한다. 

  - 사용 예: void * malloc(sizeof(int)); 

  - 기타

    ㄴ 인자로 할당받고자 하는 기억 공간의 크기를 byte 단위로 전달

    ㄴ 힙 영역에 그 크기만큼 기억 공간을 할당하고, 할당한 기억 공간의 첫 번째 주소를 반환

    ㄴ void* 로 명시하여 어떤 형으로든 형 변환 가능

    ㄴ 초기화 안 됨 (기억공간의 초기화를 위해서는 memset() 사용) 

2. free() 함수

 - 형식: void free(void *p); 

 - 기능: 동적으로 할당된 기억공간을 해제 

 - 기타

   ㄴ 힙 영역에 할당된 공간은 프로그램이 종료될 때까지 유지

   ㄴ 할당된 기억 공간을 해제하지 않으면 기억 공간의 부족 현상이 발생

   ㄴ 따라서 명시적인 반납이 필요 

3. calloc() 함수

 - 형식: void * calloc(int n, int size); 

 - 기능: 주어진 size의 크기를 가지는 기억공간 n개를 할당받는다. 

 - 사용 예: void * calloc(n, sizeof(int)); 

 - 기타

   ㄴ malloc() 함수와 동일하게 힙 영역에 기억공간 할당

   ㄴ 다른 점은 사용하는 형태와 할당된 기억 공간을 0으로 초기화 

4. realloc() 함수

 - 형식: void * realloc(void *p, int size);

 - 기능: 포인터 p가 가리키고 있는 기억공간의 크기를 지정된 size의 크기로 변경

 - 기타

   ㄴ 이미 할당받은 기억 공간의 크기를 변경해야 할 필요가 있을 경우 사용

 

 

* 기억공간 관리 함수 

1. memcmp() 함수 

 - 형식: int memcmp(void *s1, void *s2, size_t n); 

 - 기능: s1과 s2가 가리키는 기억 공간의 내용을 n byte만큼 비교

 - 기억 공간에 들어 있는 자료를 주어지는 크기만큼 비교하여, 같은지 여부를 알 수 있게 해주는 함수 

2. memcpy() 함수

 - 형식: void *memcpy(void *dest, const void *src, size_t n); 

 - 기능: src에서 n byte만큼 dest에 복사 

 - 기억공간의 자료를 다른 기억 공간 영역으로 복사하기 위한 함수 

3. memset() 함수 

 - 형식: void *memset(void *s, int c, size_t n);

 - 기능: 포인터 s가 가리키는 곳을 c값으로 n byte만큼 채운다

 - 기억공간의 자료를 지정한 문자로 채우는 함수

 - 할당된 기억 공간의 초기화나 내용 삭제를 위해 주로 사용 

 

 

 

 

 

 

반응형