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
[37762] Re:함수에서 배열 전체를 리턴시키는 방법은?
이즈 [lovease] 1469 읽음    2004-10-26 16:27
함수의 리턴형이 AnsiString이네요.. 그리고 리턴시 *연산자로 값 참조를 했구요
그것 첫번째 AnsiString의 값만을 리턴하겟다는 의미가 됩니다.
AnsiString *로 리턴형을 선언하시고
return CheckedTestCase; 하시면 배열 전체에 대한 접근이 가능하겠지요?

조심하셔야 할 사항이 있습니다. 배열의 크기를 벗어나는 형태로 접근할때 오류가 발생합니다.

데이터의 갯수까지 리턴하는 방법에는 여러가지가 있습니다.
1. 함수의 파라메터로 int * 형을 입력받아 데이터의 총갯수를 리턴한다.
2. 데이터갯수와 데이터형을 가지고 있는 구조체를 선언하고 구조체 포인터를 리턴한후
    호출한측에서 구조체의 데이터갯수를 참조해 데이터를 읽어들인다.
3. Linked list를 작성한후 tail에 null을 설정한후 리턴한다.
    호츨한측에서는 null값이 나올때까지 loop를 돌며 값을 사용한다.
4. 글로벌 변수를 사용하는 무식한 방법에서부터 각 상황에 따라 수없이 많은 방법이 좋재하겠죠?
    프로그래머의 몫입니다.. ^^

라모드 님이 쓰신 글 :
: 어떤 함수에서 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:함수에서 배열 전체를 리턴시키는 방법은? 이즈 1469 2004/10/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.