목록Programing/C, C++ (32)
공부중
역시 이번에도 기초적인 내용이었다. #include class A { public: A() { std::cout
어디 모 회사의 테스트를 봤는데 매우매우 아리까리할수 있는문제들이 많이 나와서 좀 몇개 정리해보려고 한다. 문제는 다음과 같다. #include void foo(int a) { std::cout
std::shared_ptr은 레퍼런스 카운팅 방식의 스마트 포인터로. 특정 주소를 가리키는 포인터변수가 얼마나 있느냐에 따라서 자동으로 삭제할지 결정해서 자동으로 메모리 해제하는 방식이다.(count가 0일때 메모리 할당 해제) 이 레퍼런스 카운팅 방식의 스마트 포인터 방식은 특정 조건(?)에 따라서 메모리 누수(memory leak)이 발생 할 수가 있는데. 그것에 관련된 글을 써보려고 한다 일단 테스트 하는 코드는 아래와 같다. #include #include struct MyStruct { std::shared_ptr foo; }; int main() { //_CrtSetBreakAlloc(153); auto obj1 = std::make_shared(); auto obj2 = std::make_..
코드는 아래와 같다. #include #include //shared_ptr , make_shared class MyClass { public: MyClass(int val_int = 0, double val_double = 0.0) : value_int(val_int), value_double(val_double) {}; ~MyClass() {}; private: int value_int; double value_double; }; int main() { /* 가능하다면 메모리 리소스를 처음으로 만들 때 make_shared 함수를 사용하여 shared_ptr을 만들것. make_shared는 예외 안전하고 동일한 호출을 사용하여 제어 블록 및 리소스에대한 메모리를 할당하고 생성 오버헤드가 줄어듭니다...
코드는 아래와 같다. #include #include //unique_ptr int main() { int foo = 100; //unique_ptr std::unique_ptr unique_ptr_value1{ new int }; //std::unique_ptr unique_ptr_value2{ &foo };//Runtime Error // 동적으로 할당하지 않은 주소를 넣으면 해제시 문제 발생 *unique_ptr_value1 = 1000; std::cout
코드는 아래와 같다. #include #include int main() { int testArray[] = { 0,1,2,3,4,5,6,7,8,9 }; for (int i : testArray) { std::cout
C++14에서 생긴 내용이라고 한다. 코드는 아래와 같다. #include int main() { //C++14 2진수 리터럴 int binary = 0b01010101; //1+4+16+64 == 85 std::cout
퇴사후 휴식을 하고 잊어버린 C++을 ... 다시 공부하려고 하는데(진짜 다 잊어버려서 내가 당황스럽다..) 허리가 너무 아파서 겨우겨우 허리 잡으며 하나하나 정리라도 하면서 잊어버린거 혹은 그냥 생각나는대로 뭐라도 옮겨 적으려고 한다 -_-.. 블로그 API도 종료되서 매우매우 캡쳐 뜨기도 귀찮기는 하지만..... 이번에 적을것은 구조체 선언시 문제(?)가 될 수 있는 것이다. 소스코드는 아래와 같다. #include struct MyStruct1 { int a; char b; double c; short d; }; struct MyStruct2 { char a; short b; int c; double d; }; struct MyStruct3 { }; int main() { MyStruct1 s1; ..