2013-04-22 2 views
0

MARS 에뮬레이터에서 MIPS ISA를 사용하여 midi 파일을 읽은 후 디코딩 된 이벤트를 각 이벤트의 재생시 읽을 어레이 목록에 저장하려고합니다. 봉쇄 데이터 구조가 배열 목록이므로 동적으로 축소하고 확장 할 수 있어야합니다.Arraylists에 대한 동적 메모리 할당?

제 계획에서 각 이벤트는 두 단어로 배열에 저장됩니다. 즉, 배열 목록에 요소를 추가 할 때마다 목록이 8 바이트 씩 커야합니다.

제 질문은 할당하는 동안 크기를 모르는 배열에 대해 충분한 메모리를 어떻게 동적으로 할당합니까? 이 목록을 어떻게 만들까요?

답변

1

배열의 가능한 최대 크기를 프로그램의 시작 부분에있는 힙에서 할당하거나 링크 된 목록과 같이 단편적으로 할당 할 수있는 다른 데이터 구조를 사용하십시오.

+0

나는 최대 공간을 할당 할 필요가 없을 것이라고 기대했다. 원시적 인 것처럼 보입니다! 나는 어셈블리 수준에서 더 많은 것을 기대해서는 안된다. –