본문 바로가기

분류 전체보기221

c언어 동적 메모리 할당, 사용, 반납 방법 알아보기 c언어 동적 메모리 할당, 사용, 반납 방법 알아보기 네 안녕하세요, 이번 포스팅에서는 동적 메모리를 할당하는 방법, 사용하는 방법, 그리고 반납하는 방법에 대하여 알아보도록 하겠습니다. 이전 포스팅에서는 동적 메모리의 기본적인 것들만 간단히 알아보았는데, 직접 사용하기 위해서는 사용법을 알아야겠죠? 아주 중요한 부분인 만큼 많이 알아가셨으면 좋겠습니다. 그럼 지금부터 시작하도록 하겠습니다. 1. 동적 메모리 할당하기(malloc()) 동적 메모리를 할당하기 위해서는 malloc()이라는 함수를 씁니다. 여기서 인수의 사이즈는 할당을 받고 싶은 바이트 수가 됩니다. malloc() 함수는 헤더 파일에 함수 원형이 정의가 되어있고, 여기서 쓰이는 size_t는 기본적으로 unsigned int형으로 정의가.. 2023. 2. 27.
c언어 동적 할당 메모리에 대하여 알아보기 c언어 동적 할당 메모리에 대하여 알아보기 네 안녕하세요, 이번 포스팅에서는 동적 할당 메모리에 대하여 알아보도록 하겠습니다. 동적 할당 메모리는 실전 프로그래밍을 할 때 c언어 베이스의 모듈이나 웹 프레임워크 등에서 정말 자주 쓰입니다. 그렇기 때문에 매우 중요한 요소이기 때문에 잘 숙지하셔야 합니다. 그럼 지금부터 시작해 보도록 하겠습니다. 1. 동적 할당 메모리란? 메모리 할당 방식에는 크게 두 가지가 있습니다. 정적 메모리 할당(static memory allocation) 동적 메모리 할당(dynamic memory allocation) 이 중에 우리는 미리 메모리 할당 공간을 정해서 저장을 하는 정적 할당 방식을 썼습니다. 이런 식으로 말이죠. int score[100]; 이렇게 하면 100개.. 2023. 2. 22.
c언어 여러가지 전처리기와 매크로, 다중 소스 파일을 이용하여 여러 가지 문제 풀기(ASSERT 매크로 작성하기, 비트 매크로 작성하기, 여러가지 버전 정의하기(디럭스 버전과 스탠다드 버전 정.. c언어 여러 가지 전처리기와 매크로, 다중 소스 파일을 이용하여 여러 가지 문제 풀기(ASSERT 매크로 작성하기, 비트 매크로 작성하기, 여러 가지 버전 정의하기(디럭스 버전과 스탠더드 버전 정의하기), 리눅스 버전과 윈도 버전 분리하기, 헤더 파일 중복 포함 막기, 전처리기 사용해서 원의 면적 구하기) 네 안녕하세요, 이번 포스팅에서는 지금까지 배웠던 전처리기들과 매크로, 그리고 다중 소스 파일을 이용하여 여러 가지 문제들을 풀어보는 시간을 가져보려 합니다. 매크로를 거는 것과 다중 소스 파일을 다루는 것은 매우 중요한 부분들 중 하나이므로, 잘 알아두셔야 합니다. 그럼 지금부터 시작하도록 하겠습니다. 1. ASSERT 매크로 작성하기 ASSERT 매크로는 프로그램을 디버깅할 때 자주 쓰이는 매크로입.. 2023. 2. 22.
c언어 비트 필드 구조체에 대하여 알아보기 c언어 비트 필드 구조체에 대하여 알아보기 네 안녕하세요, 이번 포스팅에서는 비트 필드구조체에 대하여 알아보도록 하겠습니다. 비트 필드 구조체는 구조체의 한 종류인데, 일반적인 구조체와는 좀 다른 특징을 지니고 있습니다. 그럼 어떤 특징이 있는지 한 번 보도록 하겠습니다. 1. 비트 필드 구조체란? 비트 필드 구조체는 쉽게 말하면 구조체의 멤버들일 비트 단위로 쪼개져 있는 구조체입니다. 그렇기 때문에 비트들을 멤버로 가지며, 비트를 원하는 만큼 할당할 수 있기 때문에 메모리 효율이 그만큼 올라갑니다. 간단한 예시로 상품 정보를 저장하는 비트 필드 구조체를 작성해 보도록 하겠습니다. struct product { unsigned style : 3; unsigned size : 2; unsigned colo.. 2023. 2. 22.