차근차근 꾸준히

한 눈에 알기 쉽게 정리하자

프로그래밍/C++ 3

[C++] Operator new, malloc, memset 에 대해

new 및 delete 연산자C++ 언어의 new 및 delete 연산자를 사용하면 할당을 제어할 수 있습니다.learn.microsoft.com마소의 new, delete 연산자에 대한 학습을 하다가 생긴 의문을 정리했다.[목차] 1. Operator new개요:C++에서 동적 메모리 할당을 위해 사용하는 연산자입니다.객체를 생성할 때 호출되며, **생성자(Constructor)**도 자동으로 호출합니다.특징:new 키워드를 사용하여 호출됩니다.메모리를 할당하고, 할당된 메모리 주소를 반환합니다.기본적으로 operator new는 메모리 할당에 실패하면 std::bad_alloc 예외를 던집니다.사용 예제:int* ptr = new int(42); // 정수형 메모리를 할당하고, 42로 초기화std:..

프로그래밍/C++ 2025.01.15

[C++] constexpr에 대해서

constexpr는 컴파일 시간에 값을 계산하도록 보장하는 키워드이다.이는 컴파일러가 상수를 미리 계산할 수 있게 하여 더 최적화된 코드를 생성하도록 돕는다.이를 사용하면 코드의 명확성과 효율성을 동시에 높일 수 있다.주요 특징컴파일 타임 상수로 사용constexpr로 선언된 변수는 컴파일 타임에 값이 확정되어야 한다.이는 코드 실행 중에 계산되지 않고 컴파일 시점에 이미 결정된다.함수에서 사용 가능constexpr 함수는 컴파일 타임에 계산할 수 있는 식을 처리할 때 사용된다.컴파일 타임뿐만 아니라 런타임에서도 호출될 수 있다(단, 입력이 런타임 값일 경우).C++11부터 도입초기에는 제한이 많았지만, C++14 이후로 기능이 확장되어 더 유연하게 사용 가능하다.1. constexpr 변수constex..

프로그래밍/C++ 2024.12.27

[C++] static에 대해서

요약함수 내부: 값을 유지하며, 한 번만 초기화됨.전역 변수: 접근 범위를 파일로 제한.클래스 멤버 변수: 모든 객체가 공유하며, 클래스 자체에 속함.클래스 멤버 함수: 객체 없이 호출 가능하며, static 멤버 변수에만 접근 가능.static은 공유, 유지, 범위 제한과 관련된 키워드라고 이해하면 된다.1. static 변수static으로 선언된 변수는 메모리 구조에서 데이터(Data)영역에 저장된다.따라서, 프로그램이 시작될 때 메모리에 할당되고 프로그램이 종료될 때 해제된다. 일반 지역변수는 스택(Stack)영역에 저장된다. 이 스택 영역의 변수들은 함수 호출시에 메모리에 할당되며 함수 종료시에 메모리에서 사라진다.1.1 함수 내부에서 사용함수 내에서 선언된 static 변수는 함수가 여러 번 호..

프로그래밍/C++ 2024.12.27