본문 바로가기

C2

C/C++ call by value, 포인터(call by reference), 메모리 접근 동작 방식 C/C++의 call by value, call by reference 포인터 = call by reference, 그 외 타입은 call by value 라고 그냥 외우는 경우들도 많은데, 이런 암기로는 C/C++ 언어의 특성과 동작 방식을 제대로 이해하기 힘들다고 생각합니다. 먼저 C언어의 변수가 가지고 있는 정보는 변수에 할당된 메모리의 첫번째 주소, 그리고 타입(type)이며 항상 모든 타입 변수에 대해 기본적으로 call by value로 동작하고 있습니다. 그리고 call by reference가 가능하도록 연산자를 제공할 뿐입니다. C언어의 call by value 변수가 의미하는 메모리 영역의 값을 그대로 가져옵니다. 예로 아래 예시의 var 변수는 첫주소 100000000와 long lo.. 2021. 10. 5.
C/C++ call by 포인터, 소멸자, 깊은 복사자가 필요한 이유, 메모리 누수에 대한 고찰 요즘 유행하는 대부분 언어들의 경우 프로그래밍을 할 때 메모리 누수의 고려를 줄이기 위해 특정 타입의 변수에 대해서는 강제로 call by reference 접근만 허용하며 언어의 자체 엔진이 메모리 관리를 합니다. ex) GC(Garbage Collection), Reference Counts 기법 등등 다만 C언어의 경우 변수간의 할당 작업은 구조체 일지라도 모두 call by value 방식이기에 구조체 내부에 포인터가 섞여 있는 경우 메모리 누수에 대해 신경쓸 부분이 많습니다. C/C++의 call by value, 포인터 메모리 동작 방식 https://asung123456.tistory.com/43 C/C++ call by value, 포인터(call by reference), 메모리 접근 동.. 2021. 10. 4.