초기화

[C++] 배열 초기화, 벡터 초기화, fill 함수
C++에서 배열을 선언하고 초기화를 해주지 않으면 배열은 쓰레기 값으로 채워져있다. 아래의 코드를 실행해보면 #include using namespace std; int main() { int arr[5]; for (int i = 0; i < 5; i++) { cout
[C] 쓰레기값과 초기화
쓰레기 값이란? C언어에서 변수를 선언하면 어떠한 메모리 공간을 할당받는 것이다. 그렇다면 그 메모리 공간 안의 상황은 할당받을 당시 어떤 상황일까? 어디서 어떠한 의도로 그 메모리 공간이 사용되고 있었는지 모르기 때문에 그 안에는 의미 없는 값이 들어가 있는데 이러한 값들을 바로 쓰레기 값이라고 한다. 실제로 쓰레기 값이 들어있는지 한번 확인해 보도록 하자 int main() { int a; printf("%d\n", a); return 0; } 다음과 같은 에러가 발생한다. 왜 쓰레기 값이 존재하는가? 사용자들이 생각하기에는 그렇다면 변수를 선언과 동시에 초기화를 시킨다면 쓰레기값이 없을 텐데 왜 C언어에서는 그런 방향을 만들지 않았을까 하는 의문이 생길 수 있습. 이 이유는 연산의 증가가 발생하기 ..

C# 배열 초기화, 다차원배열, 가변배열에 대해서
1. C# 배열의 선언 초기화 사용 방법 (Array) -> 배열이란 ? : 배열이란 관련있는, 비슷한 데이터를 효과적으로 관리하기 위한 자료구조다. : 배열을 이용하면 연관되어있는 데이터들을 for문과 결합하여 손쉽게 순회 할 수 있다. C#에서의 배열 선언 방법 1. 기본 모양 - 자료형[] 변수이름 = new 자료형[N] { 초기화 하거나 안하거나}; 2. 배열의 요소 개수를 지정하고 선언과 동시에 초기화 하는 방법 - int[] arr1 = new int[5] { 11, 12, 13, 14, 15 }; 3. 배열의 요소 개수를 지정하지 않고 선언과 동시에 초기화 하는 방법 - int[] arr1 = new int[] { 11, 12, 13, 14, 15 }; 4. 배열의 요소 개수를 지정하고, 추..
C++ if/switch statement with initializer
0. 서문 지금까지의 C++에서 if 또는 switch의 평가식에 사용되는 변수는 미리 선언되고 적절히 초기화된 상태여야 한다. std::map에 원소를 추가하고 이에 대한 예외 처리를 하는 아래 예제가 일반적인 샘플이라 할 수 있다. #include #include int main() { std::map map; map["hello"] = 1; map["world"] = 2; // 일단 insert를 수행하고 결과 pair를 반환받아야 한다. auto ret = map.insert({ "hello", 3 }); // 그러고 나서, pair의 2번째 요소를 체크 if (!ret.second) std::cout
C++ 중괄호 초기화
특히 비교적 간단한 생성자에 대한 class생성자를 항상 정의할 필요는 없다. 사용자는 다음 예제와 같이 균일한 class 초기화를 사용하여 개체를 초기화하거나 struct 초기화할 수 있다. // no_constructor.cpp // Compile with: cl /EHsc no_constructor.cpp #include // No constructor struct TempData { int StationId; time_t timeSet; double current; double maxTemp; double minTemp; }; // Has a constructor struct TempData2 { TempData2(double minimum, double maximum, double cur, in..

[DX11 물방울책] 챕터 4 - Direct3D 초기화
1. Direct3D는 무엇인가? 로우레벨 그래픽스 API이며 3D 그래픽을 구현해서 화면에 출력할 수 있게끔 os와의 중간 다리 역할을 해준다. 2. COM 객체 컴포넌트 오브젝트 모델 (COM)은 독자적으로 그 전 버전들과 호환이 가능한 포인터이며 인터페이스다. COM 객체 포인터를 획득하기 위해선 특수 함수로부터 가져와야 한다, new 불가능. 다 사용했다면 Release 함수를 통해 제거해준다. delete 하면 뻥 날 수가 있다. 3. 텍스처와 데이터 리소스 확장명 2D 텍스처는 데이터의 행렬이다, 사용 용도 중 하나는 이미지 데이터 용이다. (이미지의 각 픽셀 색상에 대한 정보 저장) 매핑이라는 고급 기술에는 색상 대신 3D 벡터를 저장한다. 그리고 오직 DXGI_FORMAT형만 저장이 가능하..
C++ 유니폼 초기화와 생성자
C++11에 유니폼 초기화가 추가되었다. {}를 이용한 초기화여서 Brace-Initialization 이라고도 부른다. struct A { int x, y; }; class B { public: B(int x, int y) : mX(x), mY(y) {} private: int mX, mY; }; A a = {10, 20};// {} B b(10, 20);// () int c[4] = {1, 2, 3, 4};// {} C++11에서는 이 부분을 모두 {}를 이용하는 유니폼 초기화로 문법을 통일시켰다, =을 붙이거나 붙이지 않거나 모두 유니폼 초기화를 사용할 수 있다. A a1 = {10, 20}; B b1 = {10, 20}; A a2{10, 20}; B b2{10, 20}; 유니폼 초기화는 일반 자료..