728x90

C언어 36

[C언어] (void *) 포인터란?

(void *)는 특정 데이터 타입에 제한되지 않은 '일반 포인터'입니다. 보통 포인터는 특정 타입을 가리키지만, void *는 어떤 타입의 메모리든 가리킬 수 있는 일종의 만능 포인터라고 생각하면 됩니다. 쉽게 말하면, 이 포인터는 "난 어떤 타입이든 가리킬 수 있어!"라는 느낌입니다. 이런 특성 덕분에 void *는 다양한 상황에서 유용합니다. 특히 메모리 할당 함수에서 자주 등장합니다. 예를 들어, malloc() 함수는 동적으로 메모리를 할당하는데, 이때 반환값으로 void * 타입을 리턴합니다. 그 이유는, 이 메모리를 어떻게 사용할지에 따라 타입이 달라질 수 있기 때문입니다.int *p = (int *)malloc(sizeof(int) * 10); 위 코드에서 malloc()은 void *를 ..

C언어 2024.10.10

[C언어] memcpy() 함수

memcpy() 함수는 C 프로그래밍 언어에서 메모리 블록을 복사하는 함수이다. 원본 메모리 블록에서 지정한 크기만큼의 데이터를 목적지 메모리 블록으로 그대로 복사할 때 사용된다. 사용법#include void *memcpy(void *dest, const void *src, size_t n); 매개변수dest : 데이터를 복사할 목적지 메모리 블록의 시작 주소이다.src : 복사할 원본 메모리 블록의 시작 주소이다.n : 복사할 바이트 수를 나타낸다.반환값복사된 목적지 메모리 블록의 시작 주소(dest)를 반환한다. 예제1)#include #include int main() { char src[] = "Hello, World!"; char dest[20]; // src 배열의 내용을 d..

C언어 2024.10.10

[C언어] memset() 함수

memset() 함수는 C 프로그래밍 언어 메모리의 특정 영역을 원하는 값으로 초기화(세팅)할 때 사용되는 함수이다.이 함수는 동적 메모리 할당이 아닌 정적 메모리 할당 또는 자동 메모리 할당이라고 부른다.함수의 이름 보면 뜻을 알 수 있다. memory + setting 메모리를 특정 값으로 세팅한다. 사용법#include void * memset(void* ptr, int value, size_t num); 매개변수ptr : 초기화할 메모리의 시작 주소이다.value : 메모리에 설정한 값이고, unsigned char로 변환되어 사용된다. 0~255 사이의 값을 넣으면 된다.num : 초기화할 바이트 수이다. 메모리에서 몇 바이트를 이 값으로 채울지 지정한다.반환값초기화된 메모리의 포인터를 반환한다..

C언어 2024.10.10

[C언어] realloc() 함수

realloc() 함수는 C 프로그래밍 언어에서 동적 메모리를 할당하기 위해 사용되는 함수이다. 이 함수는 표준 라이브러리  에 정의되어 있다. C언어에서 동적으로 할당한 메모리는 free함수를 이용하여 부분적으로 해제할 수 없다. 대신 realloc 함수를 이용하여 할당한 메모리의 크기를 조절할 수 있다. 사용법#include void* realloc(void* ptr, size_t new_size); 매개변수 ptr : 크기를 변경할 기존 메모리 블록의 포인터이다. 만약 이 값이 NULL이면, realloc은 malloc과 같은 방식으로 새로운 메모리 블록을 할당한다.new_size : 새로 요청하는 메모리 블록의 크기(바이트 단위)이다.기능크기 조정: 현재 할당된 메모리 블록의 크기를 new_siz..

C언어 2024.10.08

[C언어] calloc() 함수

calloc() 함수는 C 프로그래밍 언어에서 동적 메모리를 할당하기 위해 사용되는 함수이다. 이 함수는 표준 라이브러리 에 정의되어 있다.  사용법#include void* calloc(size_t num, size_t size); 매개변수num : 할당할 요소의 개수이다.size : 각 요소의 크기(바이트 단위)이다.기능 calloc은 num개의 요소를 각 size바이트 크기로 할당하여, 총 num * size 바이트의 메모리를 요청한다.할당된 메모리의 모든 바이트는 0으로 초기화된다.반환값성공적으로 메모리를 할당하면, 할당된 메모리 블록의 포인터를 반환한다.메모리 할당에 실패하면 NULL을 반환한다. calloc는 malloc과 다르게 메모리를 할당하며 0으로 초기화한다. 메모리 해제#includ..

C언어 2024.10.08

[C언어] malloc() 함수

malloc() 함수는 C 프로그래밍 언어에서 동적 메모리를 할당하기 위해 사용되는 함수이다. 이 함수는 표준 라이브러리 에 정의되어 있다. 메모리 동적 할당이란메모리 동적 할당(Dynamic Memory Allocation)은 프로그램 실행 중에 필요한 메모리를 요청하고 할당받는 과정을 의미한다.이 방식은 프로그램이 시작될 때 고정된 크기의 메모리를 미리 할당하는 정적 할당과는 달리. 실행 중에 필요에 따라 메모리를  동적으로 요청하고 해제할 수 있다. 사용법#include void* malloc(size_t size) 매개변수 size : 할당한 메모리의 크기(바이트 단위)를 지정한다.반환값성공적으로 메모리를 할당하면, malloc은 해당 메모리 블록의 포인터를 반환한다.메모리 할당에 실패하면 NUL..

C언어 2024.10.08
728x90