[C++] new와 delete

프로그래밍/C++ 2022. 3. 12. 02:07

본 글은 C언어의 동적할당과 프로세스의 메모리 구조를 전부 알고 있다는 전제하에서 진행됩니다. 잘 모르신다면 아래 링크에서 #프로세스의 메모리 구조 부분을 읽어주세요. https://pgh268400.tistory.com/383 [C언어 강좌] #18 동적 메모리 할당과 가변 인자 안녕하세요? 파일입니다. 어김없이 또 C언어 학습에 있어 새로운 챕터가 시작되었군요. 이번 챕터와 다음 챕터를 마치게 되면 제 C언어 강좌는 끝을 내게 됩니다. 지금 강의는 31편째지만 이 많은 pgh268400.tistory.com C언어에서 동적 메모리 할당 메모리를 관리하는 문제는 언제나 중요한 문제입니다. C, C++ 는 언어 차원에서 메모리 관리를 프로그래머가 직접 하도록 설계 되어 있습니다, 또한 대부분의 객체지향 ..

Article Thumbnail
[C++] Lvalue와 Rvalue란?

프로그래밍/C++ 2022. 3. 9. 22:30

C++ 문법을 보다보니 lvalue와 rvalue라는 용어를 발견했습니다. 아마 컴파일을 하다보면 rvalue와 lvalue에 관한 오류가 한번쯤 발생한걸 보신분들도 있을겁니다. 어떤 의미일까? 하여 관련 내용을 찾아보고 학습한 내용을 기록합니다. 일반적으로 표준 C언어의 관점에서는 Lvalue는 Left-value, Rvalue는 Right-value로 왼쪽에 있는 값, 오른쪽에 있는 값으로 이해할 수 있는데 대입연산자 (=) 를 기준으로 왼쪽에 있으면 left value, 오른쪽에 있으면 right value 라는 직관적이고 심플한 의미를 가지고 있습니다. 그러나 C++ 표준에서는 더이상 L과 R이 Left와 Right 의 의미를 가지고 있지 않습니다. 그러므로 앞에서 언급한 Left, Right의 ..

Article Thumbnail
[C++] 참조자 (레퍼런스, Reference)

프로그래밍/C++ 2022. 3. 8. 23:11

기존 포인터 연산 #include using std::cout; using std::endl; int change_val(int * p){ *p = 3; //p주소를 찾아가 해당하는 값(val)에 3을 대입한다. } int main(){ int num = 5; cout

Article Thumbnail
[C/C++] Tricky C Quizzes (Never a good code)

프로그래밍/C++ 2022. 3. 3. 19:05

C++ 강의를 듣고 있는데 교안 마지막 부분에 한번 생각해볼만한 거리로 나름 재미있는 코드들을 (사실은 끔직한) 제공해주셨길레 한번 재미삼아 하나씩 알아가보며 정리해봤습니다. #1 How many times main() will get called? - main() 함수는 몇번이나 호출되는가? #include int main() { printf("main() called \n" ); main(); return 0; } 보시면 printf로 main() called 를 출력하고 다시 main() 함수를 재귀적으로 호출하고 있습니다. 일반적으로 C/C++ 에서는 main 함수가 프로그램의 진입점(시작점)이 되는데 이렇게 main 함수를 재귀적으로 호출하면 어떻게 될까요? 우선 탈출점이 없으므로 main() ..

Article Thumbnail
[C++ Basic] namespace(이름공간)란?

프로그래밍/C++ 2022. 3. 3. 02:38

C++에서 std::cout 와 std::endl 를 이용하면 각각 출력 역할과 개행 역할을 하며 std::cout을 이용해 원하는 내용을 출력할 수 있습니다. cout, endl 을 보시면 앞에 std가 붙어 있는걸 알 수 있는데, std는 C++ 표준 라이브러리의 모든 함수, 객체 등이 정의된 이름 공간(namespace) 이라고 합니다. 그러면 이름 공간이 뭔지 알아봐야겠죠. 오늘 알아볼 것은 namespace, 한국어 직역으로 이름공간이라고 하는 녀석입니다. 이름공간 (namespace) 개인이 간단하게 작성하는 짧은 코드의 경우엔 문제가 안될 수 있지만 보통 기업체나 프로그래머 여러명이서 협업하는 프로젝트의 경우 파일을 나눠서 작업하는 경우가 대부분이기 때문에 파일도 여러개 생기고 특히 함수나 ..

Article Thumbnail
[C++ Basic] std::cout, std::endl, std::cin 을 통한 기본 콘솔 입출력

프로그래밍/C++ 2022. 3. 1. 20:14

안녕하세요 파일입니다. 저번 작성하던 C언어 강좌를 마치고 C++ 강좌를 계획했었으나 C++의 너무나도 방대한 레퍼런스 덕분에 강좌 대신에 매일 배운것을 정리하고 짧은 레퍼런스 형태로 정리를 해서 도움을 드리고자 글을 작성하려고 합니다. 그리고 C언어에서 C++로 막 넘어온 분들을 대상으로 C언어와의 차이점과 비교하면서 작성할것이니 참고 부탁드립니다. 오늘은 C++의 기본 입출력인 std::cout, std::endl, std::cin 에 대해 알아보겠습니다. #include int main(){ std::cout

Article Thumbnail