|
값을 복사하려는 것이구요..구조체를 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;
: : }
: :
: : 알려주세요....!!
|