"first-fit"메모리 할당 스키마를 시뮬레이트하는 소프트웨어를 작성하고 있습니다.C++ 메모리 할당 및 링크 된 목록 구현
기본적으로 큰 X 메가 바이트 청크를 할당하고 스키마에 따라 청크가 요청되면이를 블록으로 세분합니다. 우리가 지루하게 모든 주소 값을 통해 반복하지 않고 다음 블록을 찾을 수 있습니다 (그래서
나는 각 메모리 블록의 헤더로 "노드"라는 링크 된 목록을 사용하고 있습니다.
head_ptr = (char*) malloc(total_size + sizeof(node));
if(head_ptr == NULL) return -1; // Malloc Error .. :-(
node* head_node = new node; // Build block header
head_node->next = NULL;
head_node->previous = NULL;
// Header points to next block (which doesn't exist yet)
memset(head_ptr,head_node, sizeof(node));
`
는 그러나이 마지막 행은 반환:
error: invalid conversion from 'node*' to 'int'
이 무효 인 이유를 이해 ...하지만 난 내 새로 할당 된 메모리의 포인터 위치로 내 노드를 어떻게 배치 할 수 있습니다
이 숙제가 있습니까? –
네, 제 질문은 이론보다 문법적 도움이 필요합니다. – pws5068