목록분류 전체보기 (11)
iuboost
C++에서 문자열과 문자 배열은 텍스트 데이터를 저장하기 위한 두 가지 주요 방식입니다. 하지만 이 둘은 본질적으로 다른 점이 많으며, 용도와 처리 방식에서도 차이를 보입니다. 아래에 그 차이를 정리하겠습니다.1. 문자열 (std::string)설명:C++ 표준 라이브러리의 std::string 클래스입니다.동적 크기를 가지며, 문자열의 길이가 가변적입니다.객체지향적으로 설계되어 다양한 문자열 작업을 쉽게 처리할 수 있는 멤버 함수가 제공됩니다.특징:동적 크기 조정: 크기가 자동으로 조정되므로, 문자열의 크기를 직접 관리할 필요가 없습니다.안전성: 자동 메모리 관리 덕분에 버퍼 오버플로우 같은 문제가 상대적으로 적습니다.사용 편의성: 비교, 결합, 검색 등의 작업을 위한 멤버 함수가 많이 제공됩니다.구조..
우선 순위 및 결합성연산 자 우선 순위 는 둘 이상의 연산자를 포함하는 식의 연산 순서를 지정합니다. 연산 자 연결성은 우선 순위가 같은 여러 연산자를 포함하는 식에서 피연산자가 왼쪽에 있는 피연산자 또는 오른쪽에 있는 연산자를 사용하여 그룹화되는지 여부를 지정합니다. 연산자 설명 연산자 대체그룹 1 우선 순위, 결합성 없음 범위 확인:: 그룹 2 우선 순위(왼쪽에서 오른쪽 연결성) 멤버 선택(개체 또는 포인터). 또는 -> 배열 아래 첨자[] 함수 호출() 후위 증가++ 후위 감소-- 형식 이름typeid 상수 형식 변환const_cast 동적 형식 변환dynamic_cast 재해석된 형식 변환reinterpret_cast 정적 형식 변환static_cast 그룹 3 우선 순위, 오른쪽에서 왼쪽 ..
빅엔디안(Big Endian)과 리틀엔디안(Little Endian)컴퓨터는 데이터를 메모리에 저장하거나 네트워크를 통해 전송할 때, 데이터를 구성하는 바이트(Byte)의 순서를 정하는 방식이 필요합니다. 이러한 방식은 엔디안(Endianness)이라고 하며, 빅엔디안(Big Endian)과 리틀엔디안(Little Endian)이 주요한 두 가지 유형입니다.1. 엔디안이란?엔디안(Endianness)은 데이터를 메모리에 저장할 때, 여러 바이트로 이루어진 값을 어떤 순서로 저장할지를 정의하는 규칙입니다.빅엔디안(Big Endian): 가장 높은 바이트(MSB: Most Significant Byte)를 메모리의 가장 낮은 주소에 저장.리틀엔디안(Little Endian): 가장 낮은 바이트(LSB: Le..
C++의 new와 malloc의 차이점C++에서는 동적 메모리 할당을 위해 두 가지 방법을 사용할 수 있습니다: new/delete와 malloc/free.이 둘은 비슷한 기능을 하지만, 내부 동작 방식과 사용 목적에서 중요한 차이가 있습니다. 특히 C++의 객체지향 기능(생성자/소멸자 호출)과 연관되어 동작합니다.1. new와 malloc의 주요 차이점언어C++ 전용C/C++에서 사용 가능메모리 할당 방식생성된 객체 크기 + 부가 정보를 포함한 메모리 할당필요한 바이트만큼 메모리 할당생성자 호출객체를 초기화하며 생성자 호출생성자 호출 없음, 메모리만 할당반환 값타입에 맞는 포인터 반환void* 반환 (형 변환 필요)실패 시 동작예외(std::bad_alloc) 발생NULL 반환동적 배열 관리new[]와..
가상 메모리의 영역 상세 설명가상 메모리는 현대 운영체제가 제공하는 기능으로, 프로그램이 실행될 때 필요한 메모리를 효율적으로 관리하기 위해 가상 주소 공간을 제공합니다. 이 가상 주소 공간은 각 영역이 특정한 용도로 사용되며, 주로 코드, 데이터, 힙, 스택, 커널 영역으로 나뉩니다.1. 가상 메모리의 구조일반적으로 가상 메모리 주소 공간은 다음과 같은 주요 영역으로 구성됩니다. 각 영역은 프로그램의 데이터와 실행 흐름을 관리하기 위한 특정 목적으로 사용됩니다:코드 영역 (Code Segment, Text Segment)데이터 영역 (Data Segment)초기화된 데이터초기화되지 않은 데이터 (.bss)리터럴 상수힙 영역 (Heap)스택 영역 (Stack)커널 영역 (Kernel Space)2. 각 ..
1. 가상 메모리의 정의와 개념가상 메모리는 프로그램이 사용하는 논리적 메모리 주소 공간을 운영체제가 물리적 메모리 주소 공간과 분리하여 관리하는 방식입니다.프로그램은 가상 주소(Virtual Address)를 사용하며, 실제 데이터는 필요할 때만 물리적 메모리에 로드됩니다.가상 메모리의 핵심 원리페이지(Page):가상 메모리와 물리 메모리는 고정 크기의 단위(페이지)로 나뉩니다.일반적으로 4KB 또는 8KB 단위로 관리됩니다.페이지 테이블(Page Table):가상 주소를 물리 주소로 매핑하는 데 사용됩니다.각 페이지는 페이지 테이블의 도움으로 물리적 메모리의 특정 위치에 저장됩니다.주소 변환(Address Translation):CPU는 프로그램의 가상 주소를 참조합니다.운영체제와MMU(Memory ..
메모리와 주소에 대한 이해컴퓨터 프로그램이 실행될 때, 메모리는 데이터를 저장하고 처리하는 공간입니다. C와 C++에서는 이 메모리를 효율적으로 사용할 수 있도록 메모리와 주소에 대한 개념을 명확하게 제공합니다. 이를 이해하면 메모리 관리나 포인터와 같은 고급 개념도 더 쉽게 다룰 수 있습니다.1. 메모리의 개요컴퓨터의 메모리는 데이터를 저장하는 공간으로, 프로그램 실행 중 필요한 변수, 상수, 코드 등이 저장됩니다.메모리는 바이트 단위로 나뉘며, 각 바이트에는 고유한 주소(Address)가 할당됩니다.메모리의 구조메모리는 일반적으로 다음과 같은 영역으로 나뉩니다:코드 영역 (Text Segment)프로그램의 기계어 코드가 저장되는 영역입니다.실행 중 변경되지 않습니다.데이터 영역 (Data Segmen..
C와 C++의 자료형 소개프로그래밍 언어에서 자료형(Data Type)은 변수나 상수가 가질 수 있는 값의 종류와 그 값을 처리하는 방식을 정의합니다. C와 C++에서는 다양한 자료형을 제공하며, 효율적인 프로그램을 작성하기 위해 적절한 자료형을 선택하는 것이 중요합니다.1. 기본 자료형 (Primitive Data Types)C와 C++에서 가장 많이 사용되는 기본 자료형은 다음과 같습니다:정수형 (Integer Types)char1-128 ~ 127 (signed)문자 하나를 저장하거나 작은 정수값 저장unsigned char10 ~ 255음수가 없는 8비트 정수short2-32,768 ~ 32,767작은 범위의 정수unsigned short20 ~ 65,535음수가 없는 작은 정수int4-2,147..
비트와 바이트에 대한 이해프로그래밍에서 자료형은 데이터를 저장하고 처리하는 단위와 깊이 관련이 있습니다. 이러한 데이터는 컴퓨터의 기본 단위인 비트(Bit)와 바이트(Byte)를 통해 표현됩니다. 이 개념을 이해하면 메모리 관리나 최적화를 할 때 큰 도움이 됩니다.1. 비트(Bit)란?비트(Bit)는 Binary Digit의 약자로, 0 또는 1의 두 가지 상태만을 표현할 수 있는 가장 작은 정보 단위입니다.컴퓨터는 2진수를 사용하여 데이터를 저장하고 처리하기 때문에 비트가 가장 기본 단위가 됩니다.하나의 비트는 켜짐(1) 또는 꺼짐(0) 상태를 나타냅니다.비트 예시:0 : 꺼짐1 : 켜짐2. 바이트(Byte)란?바이트(Byte)는 8개의 비트로 이루어진 단위입니다.하나의 바이트는 256가지(2⁸) 값을..
절차지향과 객체지향에 대한 설명C와 C++는 소프트웨어 개발의 패러다임을 대표하는 절차지향과 객체지향 언어의 특성을 각각 보여줍니다.이 두 가지 개념은 프로그래밍 스타일의 차이를 나타내며, 문제를 해결하는 접근 방식에 큰 영향을 미치므로이 글을 통해 알아두면 좋을거 같습니다.1. 절차지향 프로그래밍 (Procedural Programming)정의절차지향 프로그래밍은 프로그램을 순차적으로 실행하는 절차(또는 함수) 단위로 나누어 설계하는 프로그래밍 패러다임입니다. 주로 C 언어가 대표적인 절차지향 언어입니다.특징프로그램은 순서대로 실행되며, 데이터와 함수는 별개로 존재합니다.주어진 문제를 해결하기 위해 절차(Procedure)나 함수를 정의하고 이를 호출하는 방식으로 동작합니다.함수의 재사용을 통해 코드의..