@intFromPtr — 포인터를 정수 주소로 바꾸기

@intFromPtr — 포인터를 정수 주소로 바꾸기

코드에서 포인터 값을 다루다 보면, 그 포인터가 실제로 가리키는 메모리 주소를 숫자로 확인하고 싶을 때가 있어요. @intFromPtr은 포인터 값을 그 주소에 해당하는 usize 정수로 바꿔 주는 내장 함수예요. 반대로 정수 주소를 다시 포인터로 되돌리고 싶을 땐 @ptrFromInt을 쓰면 돼요.

출처: Zig Documentation

본문

함수 시그니처는 이렇게 생겼어요.

@intFromPtr(value: anytype) usize

value를 포인터의 주소를 나타내는 usize로 변환해요. 이때 value*T 또는 ?*T 타입이 될 수 있어요. 즉, 단일 포인터든 nullable 포인터든 그 값이 담고 있는 메모리 주소를 정수로 꺼내 준답니다.

관련 함수로는 다음이 있어요.

  • @ptrFromInt — 정수(주소)를 다시 포인터로 변환할 때 씁니다.

더 알아보기 (Learn more)

  • @ptrFromInt: 이번에 본 @intFromPtr과 반대 방향으로, 정수 주소를 포인터로 바꾸는 내장 함수예요.