다음: 구조체 만들기, 이전: 기본 용법과 예시, 상위 문서: 구조체   [차례][찾아보기]


6.1.2 구조체 배열

구조체 배열은 구조체의 각 기록란이 낱칸 배열인 특수한 구조체입니다. 개별 낱칸 원소는 크기가 같습니다. 개념 상으로, 구조체 배열은 동일한 기록란을 가진 구조체의 배열로도 볼 수 있습니다. 아래는 구조체 배열 생성 예시로

x(1).a = "string1";
x(2).a = "string2";
x(1).b = 1;
x(2).b = 2;

기록란 두 개를 가진 1×2짜리 구조체 배열을 만듭니다. 구조체 배열을 만드는 다른 방법은 struct 함수를 사용하는 것입니다.(구조체 만들기 참조) 다른 구조체처럼, 구조체 배열을 값을 출력하려면 구조체 이름을 타자하면 됩니다.

x
     ⇒ x =
        {
          1x2 struct array containing the fields:

            a
            b
        }

구조체 배열의 개별 원소는, 이 예시에서는 기록란이 두 개인 구조체를 반환하는 가로(1)식으로 탐색하여 얻습니다.

x(1)
     ⇒ ans =
        {
          a = string1
          b =  1
        }

더욱이 구조체 배열을 기록란 이름으로 탐색하여 기록란 값을 반점으로 구분한 목록(반점 구분 목록 참조)으로 반환받을 수도 있습니다.

x.a
     ⇒
        ans = string1
        ans = string2

반점 구분 목록을 좌항에 넣은 다른 예시입니다.

[x.a] = deal ("new string1", "new string2");
 x(1).a
     ⇒ ans = new string1
 x(2).a
     ⇒ ans = new string2

수치 배열은 벡터로 탐색하여도 됩니다.(색인 표현식 참조)

x(3:4) = x(1:2);
[x([1,3]).a] = deal ("other string1", "other string2");
x.a
     ⇒
        ans = other string1
        ans = new string2
        ans = other string2
        ans = new string2

함수 size는 구조체 크기를 반환합니다. 아래 예시는 위 예시 구조체의 크기입니다.

size (x)
     ⇒ ans =

          1   4

수치 배열과 비슷한 방식으로 원소에 빈 행렬을 할당하여 구조체 배열에서 원소를 제거합니다.
예시:

in = struct ("call1", {x, Inf, "last"},
             "call2", {x, Inf, "first"})
     ⇒ in =
        {
          1x3 struct array containing the fields:

            call1
            call2
        }

in(1) = [];
in.call1
     ⇒
       ans = Inf
       ans = last

다음: 구조체 만들기, 이전: 기본 용법과 예시, 상위 문서: 구조체   [차례][찾아보기]