문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 이동문서 삭제토론 Forth (문단 편집) ==== create와 allot ==== create는 변수 단어를 생성한다. allot은 생성한 주소로부터 스택 방식으로 공간을 할당한다. 포스에서는 사전 할당(Dictionary Allocation)이라고 한다. {{{create arr1 3 cells allot 1 arr1 ! 2 arr1 cell+ ! 3 arr1 2 cells + ! }}} 1. create로 arr1이라는 단어를 생성하였고, 3 셀 만큼의 공간을 할당하였다. 각 공간은 초기화되어있지 않은 상태이다. [?, ?, ?] 1. 1을 arr1의 주소에 저장하였다. 기본적으로 첫 번째 공간을 가리킨다. [1, ?, ?] 1. arr1의 주소에 한 셀 만큼을 더해서 그 주소에 2를 저장하였다. [1, 2, ?] 1. arr1의 주소에 두 셀 만큼을 더해서 그 주소에 3을 저장하였다. [1, 2, 3] 공간을 할당하고 값을 집어넣는 건 매우 귀찮은 일이다. 할당과 값 초기화를 동시에 할 수도 있다. {{{create arr2 1 , 2 , 3 , }}} 정확히 동일한 작업을 하는 코드이다. 마치 C에서 배열을 선언할 때 값을 초기화하는 것과 동일하다. here는 스택의 맨 위 주소, 즉 할당되고 남은 공간의 주소를 나타낸다. 기존에 할당된 메모리를 해제하려면, 음수 공간을 allot하면 된다. 이 때, 포스의 사전 할당 방식은 스택 지향이므로 특정 메모리 X를 해제하려면, X 이후에 할당한 메모리도 전부 해제해야 한다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기