C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[37763] Re:함수에서 배열 전체를 리턴시키는 방법은?
유영인 Cuperido [cuperido] 1167 읽음    2004-10-26 16:38
AnsiString이 자체적 포인터 적인 성격을 띄고 있기 때문에 아래 프로그래밍 구문에서는
실질적으로 포인터 사용이 잘못 되었음에도 에러가 나지 않아 혼동이 되신것 같습니다.

또한, 기타 배열을 넘겨 받으실때 전역 변수가 아니라면 포인터로 리턴값을 받는 것 보다
포인터로 인자를 넘겨주고, 함수 내에서 작업을 직접 하는 것이 훨씬 함수라는 성격 및
작업 유용성에 좋다고 생각합니다.

AnsiString 배열을 사용하실 것이라면, StringList를 사용하시는 것도 좋습니다.
StringList->Count 식으로 원하시는 대로 몇개까지 쓰여졌나도 알 수 있습니다.

아래는 예제입니다.


void __fastcall TForm1::Button1Click(TObject *Sender)
{

TStringList       *slList = new TStringList;


Form1->GetCheckedTestCase(slList);
Edit1->Text = slList->Strings[1];

delete slList;

}
//---------------------------------------------------------------------------
// 함수
void __fastcall TForm1::GetCheckedTestCase(TStringList *slList)
{

int               itCount, itMaxCount = 0;


slList->Clear();

for(itCount = 0; itCount < Form1->CheckListBox1->Items->Count; itCount ++) {
   if(Form1->CheckListBox1->Checked[itCount]) {
     slList->Add(Form1->CheckListBox1->Items->Strings[itCount]);
     itMaxCount ++;
   }
}

}


cuperido

라모드 님이 쓰신 글 :
: 어떤 함수에서 AnsiString으로 된 배열모두 Return 하려고 아래와 같이 Source code를 작성하였는데 배열의 첫번째 내용만 리턴되고 나머지는 모두 Black 입니다.
: 어떻게 하면 배열의 모든 값들을 return 할 수 있을까요?
: 그리고 한가지더 배열의 크기를 100으로 잡았는데 실제로 어디까지 데이터가 차있는지 알 수 있는 쉬운 방법이 있을까요?
:
:
: // main source code
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
:  AnsiString temp[100];
:  *temp = ScriptList.GetCheckedTestCase();
:  Edit1->Text=temp[2];
:
: }
:
: // 함수
: AnsiString __fastcall TScriptList::GetCheckedTestCase()
: {
:  int j=0;
:  for (int i=0;i<Form1->CheckListBox1->Items->Count;i++)
:         {
:           if (Form1->CheckListBox1->Checked[i]==true)
:              {
:
:                CheckedTestCase[j]=Form1->CheckListBox1->Items->Strings[i];
:                Form1->RichEdit1->Lines->Add(CheckedTestCase[j]);
:                j++;
:              }
:         }
: return *CheckedTestCase;
: }

+ -

관련 글 리스트
37761 함수에서 배열 전체를 리턴시키는 방법은? 라모드 1235 2004/10/26
37774     Re:함수에서 배열 전체를 리턴시키는 방법은? 멀더 1251 2004/10/27
37763     Re:함수에서 배열 전체를 리턴시키는 방법은? 유영인 Cuperido 1167 2004/10/26
37762     Re:함수에서 배열 전체를 리턴시키는 방법은? 이즈 1470 2004/10/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.