배치시스템(리눅스,c언어) -면접예상관련질문(2)

반응형
SMALL

2024.11.19 - [면접 예상 질문 모음!] - 배치시스템(리눅스,c언어) -면접예상관련질문(1)

 

배치시스템(리눅스,c언어) -면접예상관련질문(1)

리눅스 운영체제에서 프로세스와 스레드의 차이를 설명해 주세요.더보기프로세스는 운영체제에서 실행 중인 프로그램의 독립적인 인스턴스로, 각각 고유한 메모리 공간을 가집니다. 반면, 스

ha-vlog.tistory.com

C 언어의 주요 특징을 설명해 주세요. 다른 언어에 비해 어떤 장점이 있나요?

더보기

C 언어의 주요 특징은 크게 세 가지로 말씀드릴 수 있습니다.

첫 번째로, C 언어는 저수준 언어의 특징을 가지고 있어서 포인터를 활용해 메모리를 직접 제어할 수 있습니다. 이렇게 하드웨어와 가까운 작업이 가능하기 때문에, 운영체제나 드라이버 같은 시스템 프로그래밍에서 많이 사용됩니다.

두 번째는 효율성입니다. C 언어는 컴파일된 코드가 빠르고 리소스를 적게 사용해서 성능이 중요한 환경에서도 효과적입니다. 이런 점 때문에 임베디드 시스템이나 고성능 애플리케이션 개발에도 적합합니다.

세 번째는 이식성인데요, C 언어는 다양한 플랫폼에서 동일한 코드를 실행할 수 있어 개발한 프로그램을 다른 환경으로 쉽게 이전할 수 있다는 장점이 있습니다.

결론적으로, C 언어는 하드웨어와 밀접한 작업이 필요하거나, 성능과 효율성이 중요한 프로젝트에 강점이 있다고 생각합니다.


메모리 할당과 관련된 malloc()과 calloc()의 차이를 설명하세요. 그리고 할당된 메모리를 해제하지 않으면 어떤 문제가 발생하나요?

더보기

malloc(size_t size)는 지정된 바이트 크기만큼 메모리를 할당하며 초기화하지 않습니다. 반면, calloc(size_t n, size_t size)는 n개의 요소를 초기화(0으로)하며 할당합니다. 할당된 메모리를 해제하지 않으면 메모리 누수가 발생하여 시스템 자원이 고갈될 수 있습니다. 따라서 작업이 끝난 후 반드시 free()로 메모리를 해제해야 합니다.


C에서 포인터(pointer)의 개념을 설명하고, 이중 포인터와 배열 포인터의 차이를 설명해 주세요.

더보기

포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 이중 포인터는 포인터를 가리키는 포인터로, 다중 차원 배열이나 동적 메모리 할당에서 사용됩니다. 배열 포인터는 배열 전체를 가리키는 포인터로, 다차원 배열의 행을 처리할 때 유용합니다.


C 언어에서 동적 메모리 관리를 사용할 때 발생할 수 있는 문제를 설명하고, 이를 방지하기 위한 방법을 알려주세요.

더보기

동적 메모리 관리를 사용할 때 발생할 수 있는 문제는 메모리 누수, 댕글링 포인터, 메모리 오버플로우가 있습니다. 이를 방지하려면 모든 동적 메모리는 사용 후 free()로 해제하고, 해제한 포인터는 null로 초기화 해줍니다. 또한 동적으로 메모리를 생성할때 배열 크기 등을 초과하지 않도록 철저히 검증해주며 이를 통해 안정성을 유지할수 있습니다.


C 언어에서 struct와 union의 차이점을 설명해 주세요.

더보기

struct는 각 멤버가 독립적으로 메모리를 가지며, 모든 멤버 크기의 합만큼 메모리를 사용합니다. 반면, union은 모든 멤버가 동일한 메모리 공간을 공유하며, 가장 큰 멤버의 크기만큼 메모리를 사용합니다. struct는 데이터를 독립적으로 관리할 때 유용하고, union은 메모리 절약이 필요할 때 사용됩니다.

 

반응형
LIST