C언어/stdlib.h 7

[C언어] atoi 함수 (문자열을 숫자로 변환)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열을 숫자로 변환한다. 헤더 #include ※ 함수 사용 시 stdlib.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 int atoi(const char *str); 파라미터 const char *str 숫자로 변환할 문자열을 입력한다. 반환값 성공시 문자열이 표현하는 숫자를 int형 정수 값으로 반환한다. 실패시 0을 반환한다. 잡학지식 atoi는 실무에서도 자주 사용하는 함수로 string을 int로 변환하는데 사용한다. int형의 범위를 반드시 인지하고 사용하는 것이 좋으며 overflow 혹은 underflow 에 대한 예외를 반드시 확인해야 한다. 비슷한 ..

C언어/stdlib.h 2023.04.02
[C언어] abs 함수 (정수의 절대값 구하기)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 입력받은 정수의 절대값을 계산하기 위해 사용한다. 헤더 #include ※ 함수 사용시 stdlib.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 int abs(int n); 파라미터 int n 절대값을 구할 정수를 입력한다. 반환값 성공시 인자로 전달한 정수 n의 절대값을 반환한다. 오류 반환값이 없다. 잡학지식 abs 함수는 전달 받은 정수 n의 절대값을 반환하는 함수이다. 하지만 int는 대부분의 환경에서 크기 4byte를 가지기에 표현할 수 있는 범위의 한계가 존재한다. (부호비트 포함) int와 long은 무엇이 다를까? [C언어] int 와 long 은 무엇이 ..

C언어/stdlib.h 2023.03.29
[C언어] realloc (heap 메모리 크기 변경)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 이미 할당받은 동적메모리(Heap Memory)의 크기를 변경하기 위해 사용한다. 헤더 #include ※ 함수 사용시 stdlib.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 void* realloc(void* memory, size_t size); 파라미터 void* memory 이미 할당받았던 heap memory의 주소를 입력한다. size_t size 변경할 heap memory의 크기를 입력한다. 반환값 성공시 사용 가능한 heap memory pointer가 반환되고 , 인자로 전달한 memory 가 free 된다. 실패시 NULL이 반환되고 인자로 전달한 ..

C언어/stdlib.h 2023.03.28
[C언어] free 함수 (heap 메모리 해제)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 할당받은 동적메모리(Heap Memory)를 해제하기 위해 사용한다. 헤더 #include ※ 함수 사용시 stdlib.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 void free(void* memory); 파라미터 void* memory malloc, calloc, realloc 과 같은 함수를 통해 할당받은 heap memory 주소를 입력한다. NULL 을 넣어도 문제는 없다. (malloc, calloc, realloc 함수의 경우 실패 시 NULL이 반환된다) 반환값 free 함수는 반환값이 없지만 정상적인 경우 heap memory가 반환된다. 만약 실패시 ..

C언어/stdlib.h 2023.03.26
[C언어] calloc 함수 (초기화된 heap 메모리 할당)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 초기화된 동적메모리(Heap Memory) 할당을 받기 위해 사용한다. 헤더 #include ※ 함수 사용 시 stdlib.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 void* calloc(size_t NumOfElements, size_t SizeOfElements); 파라미터 size_t NumOfElements 메모리를 할당할 elements(요소)의 수 (※ 동적메모리 할당받는 변수의 배열 크기를 입력하며, 배열이 아닐 경우 1을 입력한다.) size_t SizeOfElements 메모리를 할당할 elements(요소)의 크기 (※ 동적메모리 할당받는 변수 ty..

C언어/stdlib.h 2023.03.02
[C언어] malloc 함수 (heap 메모리 할당)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 동적메모리(Heap Memory) 할당을 받기 위해 사용한다. 헤더 #include ※ 함수 사용 시 stdlib.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 void* malloc(size_t size); 파라미터 size_t size malloc 함수를 통해 할당받을 memory의 크기를 입력한다. 반환값 성공 시 유효한 포인터 주소를 반환한다. 실패 시 NULL을 반환한다. Memory 가 부족한 경우 malloc 함수가 실패할 수 있다. 추가로 Memory가 남아있지만 지속적인 메모리 할당 & 해제를 반복하다 보면 내부적으로 메모리가 파편화되어 용량이 남아있어도 ..

C언어/stdlib.h 2023.03.01
[C언어] abort 함수 (프로그램 중단, 비정상 종료)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 SIGABRT 시그널을 발생시켜 프로그램의 비정상 종료를 의도한다. 헤더 #include ※ 함수 사용시 stdlib.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 void abort(); 파라미터 void 반환값 없음 (void) 잡학지식 abort 함수는 프로그램을 강제종료하는 함수라고 생각하면 된다. 따라서 24시간 서비스를 제공해야하는 프로그램이거나 예외처리를 하는 방향에서는 사용하면 안된다. abort 함수는 보통 프로그램을 테스트하는데 자주 사용하며, 유닛테스트(unittest) 에서 활용하는것을 자주 볼 수 있다. SIGABRT 시그널을 발생시켜서 프로그램을 종..

C언어/stdlib.h 2023.03.01
반응형