포인터로 함께 링크 된 노드가있는 링크 된 목록을 기반으로하는 프로그램을 만들었습니다. 모든 노드는 숫자와 다음 노드에 대한 포인터를 저장하는 정수를 보유합니다. 큐는 FIFO를 따릅니다.링크 된 목록 - 노드의 메모리 주소
EV 완벽한 것이 작동하는 것 같습니다! 대기열에 새 노드를 추가 할 수 있으며 노드를 삭제할 수 있습니다. 모두 FIFO 순서입니다.
이 프로그램은 동적 메모리 할당에 대해
그래서 제 질문은 다음 무엇을 (malloc이 무료 라이브러리 함수를 사용)입니까? 문제는 메모리가 작동하는 방식, 즉 이러한 노드가 힙에 저장되는 경우 - 노드가 다음과 같은 방식으로 저장되는 이유입니다.
1 (205888)
2 (206032)
3 (206888)
4 (206904)
5 (215896)
6 (215912)
7 (215928)
이것은 프로그램의 출력입니다. 첫 번째는 저장된 정수이고 withing 괄호는 노드에 대한 주소입니다.
그래서 - 메모리에서 일어나고있는 것 같다 뭔가 - - 노드 (5)의 주소 AT & T는보고가 이전 노드와 비교 천에서의 점프 바이트 경우 - 206,904에서 215896.
에 그것을 왜 여기 점프? 어떤 의미가 있습니까? 정말 메모리 누수가 될 수 있을까요? 또는이 방식으로 OS와 컴파일러가 memoryr-allocation을 구성합니까 ???