본문 바로가기

pointer2

[C++ Core Guidelines] I.11 원시 포인터(T*) 또는 참조(T&) 로 소유권을 넘기지 말자 I.11: Never transfer ownership by a raw pointer (T*) or reference (T&) 이유함수를 호출하거나 함수에서 결과를 반환할 때 누가 해당 데이터의 소유권을 책임지고 있는지 제대로 신경쓰지 않으면 메모리 릭을 일으키거나 실수로 미리 소멸자를 부르는 일이 발생할 수 있습니다.  예시 (나쁜 예)// 나쁨 : 이 함수만 보고는 X 를 누가 책임지고 지울지 알 수가 없습니다.X* compute(args){ X* res = new X{}; // ... return res;} 반환된 X는 누가 삭제할 것인지 의도를 알 수 없습니다. 포인터 대신 참조를 반환하면 문제를 발견하기 더 어렵게 만듭니다.위 경우 차라리 값으로 결과를 반환하는 것이 낫습니다. .. 2024. 12. 10.
[Zig] 포인터(pointers) 포인터를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 또는 var 포인터 이름 : * 포인터가 가리킬 데이터의 형태와 크기 = 할당할 초기 레퍼런스(주소) 값 또는 undefined 할당할 레퍼런스(주소) 초기 값 을 undefined 로 정의하면 초기 값을 설정하지 않고 나중에 값을 할당한다는 의미입니다. 포인터가 가리키는 값을 역참조(dereferencing) 할 때는 포인터 이름 .* 를 통해 가능합니다. -------------------------------------------------------------------.. 2024. 3. 21.