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
[12734] Re:Re:구조체 복사...꼭좀..
문정원 [hhmjw] 1467 읽음    2001-11-16 10:21
값을 복사하려는 것이구요..구조체를 char *형에 담는것입니다.
그리구 구조체에 char []를 쓰지않구요 String형으로 써야하구요..


박재욱.사탕 님이 쓰신 글 :
: 값을 복사 하시려는 것인지...
: 주소값만 넘겨주시려는 것이지는 모르나..
: 아래의 답변은 주소값을 넘겨주는겁니다.
:
: typedef struct _A
:  {
:      int i;
:      AnsiString str;
:  }A;
:  
: void Test(void)
: {
:
:   A* p;      // 구조체형 포인터 변수 하나 선언..(주소만 담을 겁니다.)
:   int Size;
:   A *a = new A;
:
:   a->i = 1;
:   a->str = "abcd";
:
:  
:   p = a;  // 주소값을 넘겨줍니다.
:
:   delete pMy;
: }
:
:
: 내용물을 찍어보면 똑같습니다.
: a의 주소가 100번지라면 p의 내용에 100이 있는것인 셈이지요.
: p->i p->str 해보시면 a->i a->str하는것과 동일한 코딩이 되는겁니다..
:
: 값을 넘기려면(복사를 하실려면)..... 구조체와 배열의 용도가 다른데..
:
: 구조체는 서로다른 자료구조를 묶어 놓은 것이고..
: 배열은 동일한 자료구조의 묶음이라.. 값이 넘어갈련지 모르겠네요..
: 다른 구조체 하나 만들어 놓고 값을 복사해주면 몰라도...................
:
:
: 제가 틀렸을 수도 있다는걸 명심하시고...
: 이상으로 저의 허접한 답변이었습니다..
:
: 꾸벅~~~~~~~~
:
:
: 문정원 님이 쓰신 글 :
: : typedef struct _A
: : {
: :     int i;
: :     AnsiString str;
: : }A;
: :
: : ..
: :
: : void Test(void)
: : {
: :     char *P;
: :     int Size;
: :     A *a = new A;
: :
: :     a->i = 1;
: :     a->str = "abcd";
: :   
: :     /* P 에 구조체를 복사하려구 하는데요..잘 안되네요..*/
: :     Size = sizeof(*a); <-- 구조체 크기얻는 부분(?)
: :     P = (char *)malloc(Size);    
: :     memcpy(P, (void *)&a[0], 구조체크기); <--구조체 넘기는 부분(?)
: :    
: :     ...(중략)
: :    
: :     free(P);
: :     delete a;
: : }
: :
: : 알려주세요....!!

+ -

관련 글 리스트
12717 구조체 복사...꼭좀.. 문정원 824 2001/11/15
12725     Re:구조체 복사...꼭좀.. 푸른바다 1059 2001/11/16
12724     Re:구조체 복사...꼭좀.. 박정모 1136 2001/11/16
12720     Re:구조체 복사...꼭좀.. 박재욱.사탕 2380 2001/11/16
12734         Re:Re:구조체 복사...꼭좀.. 문정원 1467 2001/11/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.