2014-11-04 8 views
1

간체 질문 (이동에) 변수 주소를 정의 :명시 적으로

변수의 주소를 추적 할 수있는 프로그래머가 실용적인 변수의 주소가 그 변수의 데이터 점으로 사용할 수 있도록?

원래 질문 :

나는 변수를 저장하고 이동에 포인터를 사용하여 주소로 참조하는 방법을 주위에 내 머리를 정리하려고 시도하고있다.

일반적으로 변수의 주소를 직접 할당하는 것이 유용할까요? 데이터가 변수의 실제 (가상) 주소로 인코딩 될 수 있으며 반드시 그 변수의 값이 아닌 상황을 상상할 수 있습니다.

예를 들어 1000 번째 고객이 500 달러를 구매했습니다. 1000의 위치에 500의 값을 가진 interger를 저장할 수 있습니까?

나는 이런 식으로하는 일반적인 방법은 위치 999 변수가 1000 번째 고객과 일치하지만 배열에 관한 것이 아니라 주소를 직접 할당하는 것입니다.

수십억 개의 개체를 처리한다고 가정 해 보겠습니다. 개체에있는 데이터의 일부로 주소를 사용하고 해당 위치에 다른 데이터로 저장된 값을 사용하는 쉬운 방법이 있습니까?

예를 들어, 주소 135851851904의 int 값은 46876, 135851851905는 123498761을 저장합니다.이 시점에서 배열이나 슬라이스는 너무 커서 효율적이지 않을 것이라고 상상합니다.

덧붙여 말하자면, 오해로 인해 내 질문에 누군가가 제공 할 수있는 자원이 있으면서도 주제를 깊고 이해할 수있는 세부 사항으로 설명 할 수 있습니까? 나는 세부 사항을 실제로 설명하는 주제에 대한 훌륭한 자료를 찾을 수 없었다.

+1

이 질문은 너무 광범위합니다. 좋은 답변은이 형식에 비해 너무 길다. 응답 집합의 범위를 좁히거나 몇 단락에서 대답 할 수있는 문제를 찾아내는 세부 정보를 추가하십시오. – peterSO

+0

@peterSO 내가이 주제를 더 자세히 탐색 할 수있는 소스를 추천 해 주시겠습니까? – ridthyself

+0

[여기에 대해서는 어떤 주제가 있습니까?] (http://stackoverflow.com/help/on-topic) : 책, 도구, 소프트웨어 라이브러리, 자습서 또는 기타 오프 사이트 자료를 추천하거나 찾도록 요청하는 질문은 다음과 같습니다. 스택 오버플로 (Stack Overflow)에 대한 논제 (Off-topic)는 오피니언 스 응답과 스팸을 끌어 들이기 쉽습니다. 대신 문제를 설명하고 지금까지 해결 된 문제를 설명하십시오. – peterSO

답변

6

변수의 주소를 직접 할당하는 것이 유용 할 수 있습니까?

당신은 이것을 달성하기 위해 패키지를 사용할 수 있습니다. 그러나 그것을 필요로하는 구체적이고 해결할 수없는 유스 케이스가 없다면 당신은 그것을하지 않는 것이 좋습니다.

1000의 위치에 500의 값으로 정수를 저장할 수 있습니까?

앞서 언급했듯이 임의의 주소를 선택하는 것은 매핑되지 않을 수도 있기 때문에 멀리 가지 않습니다. 그러한 위치에 글을 쓰면 액세스 위반이 발생하고 프로그램이 중단됩니다. 유효한 주소 번호를 확인하면 프로그램이 실행해야하는 다른 데이터를 덮어 쓰게됩니다.

개체의 데이터의 일부로 주소를 사용하고 해당 위치에 다른 데이터로 저장된 값이 있습니까?

일반적으로,

만약 당신이 항상 유효한 가상 메모리 세그먼트가되도록 보장 할 수있는 유한 한 주소 집합에서 자신의 포인터 산술을 정의한 연산에 의해 종결 된 일종의 대수 구조를 구축했다면 그렇지만 패배합니다 가비지 수집 언어 사용의 목적. 또한 그러한 프로그램을 읽는 것은 지옥이 될 것입니다.

+0

그것은 두렵다. 나는 특히 나의 질문에 대한 귀하의 의역을 좋아합니다. 당신이 내가 묻고있는 것을 이해해 주어서 기쁩니다. – ridthyself

+1

또한, Go에는 지금 상황을 움직이는 런타임이 있으므로 무작위로 덮어 쓰지 않는다고 보장 할 수는 없습니다. – LinearZoetrope

관련 문제