카테고리 보관물: C

[C] qsort() 함수

C언어에서 배열을 정렬하는 방법 중 하나는 표준 라이브러리 함수인 qsort()를 사용하는 것입니다. qsort()는 C 언어의 표준 라이브러리 중 하나인 stdlib.h 헤더 파일에 정의되어 있으며, 퀵 정렬 알고리즘을 기반으로 합니다. 이 함수는 배열의 요소 타입에 상관없이 정렬을 수행할 수 있습니다. qsort() … 계속 읽기

카테고리: C, Programming | 댓글 남기기

[C] 댕글링 포인터(Dangling Pointer)

댕글링 포인터 정의 포인터가 여전히 해제된 메모리 영역을 가르키고 있다면, 이러한 포인터를 댕글링 포인터(Dangling Pointers)라고 부른다. ⇒ 댕글링 포인터가 가리키는 메모리는 유효하지 않다. 댕글링 포인터는 종종 너무 빠른 해제(premature free)라고 불린다. 댕글링 포인터 문제점 메모리 접근 시 예측 불가능한 동작 … 계속 읽기

카테고리: C, Programming | 댓글 남기기

[C] 메모리 누수(Memory Leak)

메모리 누수 정의 메모리 누수는 할당된 메모리가 더는 사용되지 않지만, 해제되지 않을 때 발생한다. 이를 테면 다음과 같은 상황에서 발생한다. 메모리의 주소를 잃어버린 경우 free 함수가 호출되어야 하는 상황에 호출되지 않은 경우 메모리 누수의 예 메모리 누수가 누적되면 힙 관리자가 … 계속 읽기

카테고리: C, Programming | 댓글 남기기

[C] 포인터와 메모리

C 프로그램에서의 메모리 컴파일된 C 프로그램은 다음 세 종류의 메모리를 사용한다. 정적(Static)/전역(Global) 정적(Static)/전역(Global)으로 선언된 변수들은 정적/전역 메모리에 할당된다. 정적/전역 변수들은 프로그램이 시작될 때 할당되며, 프로그램이 종료될 때까지 메모리 공간에 남아 있다. 전역 변수는 파일 전체가 접근 범위(scope)이며, 정적 변수의 접근 … 계속 읽기

카테고리: C, Programming | 댓글 남기기

[C] 구조체 정렬(메모리 패딩)

개요 C언어에서 구조체가 메모리에 적재되었을때 구조체의 멤버 변수들은 선언된 순서대로 인접한 주소 번지에 위치하게 됩니다. 첫번째로 선언된 멤버가 오프셋 0으로 지정되며 그 이후에 구조체 멤버 변수의 데이터 타입에 따라 오프셋이 지정됩니다. 다음의 코드를 보고 결과를 예상해 봅시다.

선언된 구조체 … 계속 읽기

카테고리: C, Programming | 댓글 남기기