MODULE ArrayLength; IMPORT Strings, Out; TYPE String = POINTER TO ARRAY OF CHAR; VAR a: ARRAY 16 OF String; PROCEDURE NewString(s: ARRAY OF CHAR): String; VAR str: String; BEGIN NEW(str,Strings.Length(s) + 1);COPY(s,str^); RETURN str END NewString; PROCEDURE Length(a: ARRAY OF String): LONGINT; VAR i: LONGINT; BEGIN i := 0; WHILE (a[i] # NIL) DO INC(i) END; RETURN i; END Length; BEGIN a[0] := NewString("apple"); a[1] := NewString("orange"); Out.String("length: ");Out.Int(Length(a),0);Out.Ln END ArrayLength.