C++

[C++] 참조 Reference

참조 Reference 값 전달의 단점 * 값 전달은 원본 전체를 복사한다. 크기가 큰 구조체나 클래스를 전부 복사할 때 스택이라면 크기가 부족할 가능성이 높으며, 힙이라도 (복사를 원하는 게 아니라면) 비효율적이다. (이런 단점 때문에 포인터를 사용한다.) * 위에 단점을 극복하거나 범위 밖에서도 값을 사용하고 싶다면 포인터를 사용해야 한다. 하지만 포인터는 실수가 쉽고, 큰 오류로 이어질 수 있다. * 참조는 원본 전체를 복사하지 않으면서 포인터보다 안전하다. 즉, 참조는 포인터를 더욱 안전하고 사용하고 싶은 생각에서 나왔다. * 참조는 const 포인터라고 생각하면 이해하기 쉽다. 예제 // 참조 선언 int main() { int num = 10; int& ref = num; ref = 11; c..

C

malloc 함수, calloc 함수

void* malloc(size_t size); 매개변수(인자) size_t size = size 바이트만큼 메모리를 할당받는다. 반환값(리턴값) * 주소를 반환한다. (void*) 실패 시 NULL 설명 * 스택 메모리를 사용하기 위한 함수. * malloc은 memory allocation이라는 뜻이다. * #include 가 있어야 한다. * 할당/해제를 수동으로 해야 하며 힙보다 느리다. * 할당받은 메모리에는 쓰레기 값이 들어있다. 할당을 실패했다면? * 함수가 실패했다면 NULL을 반환하니 실패 여부는 쉽게 알 수 있다. 하지만 malloc 같은 동적 메모리 할당 함수의 실패는 우리가 해결할 수 없는 경우가 많다. * 메모리 공간이 부족해서 함수가 NULL을 반환했다면 우리가 뭘 어쩌겠는가? ..

스누징어
'힙' 태그의 글 목록