From 11:00 PM CDT Friday, Nov 8 - 2:30 PM CDT Saturday, Nov 9, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



LabVIEW에서 For 루프 사용시, "Memory Is Full" 에러가 납니다.



주요한 소프트웨어:
주요한 소프트웨어 버전: 7.0
문제가 해결된 소프트웨어 버전: N/A
부차적인 소프트웨어:

문제점: For 루프 내에 커다란 인덱스 배열을 사용하고 있습니다. VI 프로그램을 실행하면, "Memory is full"이라는 에러 메시지가 뜹니다.


VI 프라퍼티를 사용하여 메모리 사용과 Windows 작업 관리자를 확인하였으나 아무런 문제가 없어 보입니다. 무엇이 잘못되었습니까?

솔루션: For 루프 내에 인덱스 배열을 사용할 때 배열이 2^31 승보다 더 많은 수의 데이타를 포함할때 위의 에러가 발생합니다. 일반적으로 배열은 2^32 승의 데이타 값을 가질수 있지만, For 루프 내의 인덱스 배열은 오직 2^31 승의 데이타 값을 가집니다. 왜냐하면 N 터미날이 U32가 아닌 I32 데이타 형태를 사용하기 때문입니다. I32 데이타형의 마지막 비트는 그 값이 양수인지 음수인지를 표시하는데 사용됩니다.

이러한 제한을 해결하기 위해서는 하나의 커다란 배열을 작은 두개의 배열로 분할하거나 For 루프를 While 루프로 바꾸어 같은 반복 횟수를 배열 크기와 비교하면서 같은 값이 될때 종료하시면 됩니다.

관련 링크:

첨부:





리포트 날짜: 02/20/2004
마지막 업데이트: 04/02/2004
문서 번호: 36JGRQFP