Q&A

  • 유동적으로 배열크기 지정할 수 없나요?
작업을 하다 이런 기능이 있으면 해서 올립니다.
보통
var
  a1 : array[0..100] of string;

이런식으로 선언을 하잖아요..
하지만, 배열크기가 외부 text에서 입력 받은 수   b1 := strtoint(edit1.text);
이라고 했을때

a1 : array[0..b1] of string;
이런식으로 선언할 수 있는 알고리즘이나 형식이 없나요?
궁금해서 올립니다.
2  COMMENTS
  • Profile
    정진성 2006.10.24 21:07
    기냥 Setlenth 로 그때그때 마다...

    a1 : array of string;

    setlenth(a1, high(a1)+2) 이런식으로 하면 필요할때마다 늘리면 되지 않을까요..???

  • Profile
    착한천사 2006.10.24 20:36
    착한천사 김경록입니다.
    Dynamic Array에 대해서 말씀하시듯 하네요..
    Dynamic Array는 C++/Delphi/VB등과 같은 곳에서도 해결이 되는 부분으로 알고 있습니다.
    Delphi에서는 2가지 방법으로  Dynamic Array를 지원합니다.

    1. Pointer를 이용한 Memory 할당/제거
    2. Array Pointer를 이용한 Momery 할당/제거
    입니다.

    1은 Pointer 선언후 GetMem 할당을 받고 꼭 FreeMem으로 제거를 해 주셔야만 합니다.
    2는 Array를 선언하되 크기를 지정하지 않고 변수 선언 후 SetLength,Initialize,Finalize등으로
    제거를 해 줘야만 합니다.

    꼭 제거를 해야만 하기 때문에 별도의 제거루틴을 실행해야만 하겠죠?
    그리고 예제는 Delphi에 제공되는 Help(찾는 단어를 typing한 후 CTRL+F1을 누르면 나오죠? 아시죠?)를
    참조하세요.. 아주 잘 되어 있습니다.

    답변이 되셨길 바라네요..