전체 글

전체 글

    (DreamHack) Find Candy Writeup

    보호되어 있는 글입니다.

    (DreamHack) mining game Writeup

    보호되어 있는 글입니다.

    [C++] 6. C++ STL(Standard Template Library)

    본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루어진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. STL(Standard Template Library) C++ 언어는 일반화 프로그래밍이라는 특징을 가지고 있습니다. 이러한 특징은 Java처럼 데이터를 중시하는 객체 지향 프로그래밍 언어와 달리 프로그램의 알고리즘에 중점을 둡니다. STL은 이러한 C++의 일반화 프로그래밍의 한 축으로 자료 구조, 함수, 알고리즘등을 쓰기 쉽..

    [C++] 5. C++ 프렌드(friend), 스마트 포인터(smart pointer)

    본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. 프렌드(friend) 객체의 private 멤버는 해당 객체의 public 멤버 함수로만 접근이 가능합니다. 하지만 경우에 따라서는 해당 객체의 멤버 함수가 아닌 함수도 private멤버에 접근해야만 할 경우가 발생합니다. 이런 경우 private 멤버에 접근하기 위해 public 멤버를 새롭게 추가하는 것으로 해결할 수 있는데..

    [C++] 4. C++ 참조자(reference), 소멸자(destructor)

    본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. 참조자(Reference) C++에서는 특정 변수의 실제 이름 대신 사용할 수 있는 참조자라는 기능이 있습니다. 참조자는 크기가 같은 큰 구조체와 같은 데이터를 함수의 인수로 전달하거나 클래스 설계할때 자주 사용됩니다. 문법은 아래와 같습니다. int 변수이름; // 변수의 선언 int& 참조자이름 = 변수이름; // 참조자 선..

    [C++] 3. C++ new()와 delete()

    본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. C++ 메모리 동적 할당 C에서 메모리 동적할당에 사용되는 라이브러리 함수 malloc()등이 있다. C++에서도 마찬가지로 라이브러리 함수를 사용하기 때문에 malloc()으로 할당하거나 free()로 할당된 메모리의 해제하는 것이 가능하다. 그러나, C++은 라이브러리 함수 보다 효과적인 동적 할당 및 해제를 위해 new 연..

    [C++] 2. C++ typeid, endl 과 \n 차이

    본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 틀린부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro C++ type 확인 C++ 에서도 Java나 Python 처럼 객체의 타입에 관한 정보를 확인 해야 할 때가 있다. 이때 C++에서 사용되는 문법이 typeid 이다. typeid(표현식) 이 typeid는 다른 문법에서 처럼 타입을 확인할 수 있게 해주는 기능만 있는 것이 아닌 name 이라는 멤버 함수를 추가로 확인이 가능한데 이는..