|
값을 복사 하시려는 것인지...
주소값만 넘겨주시려는 것이지는 모르나..
아래의 답변은 주소값을 넘겨주는겁니다.
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;
: }
:
: 알려주세요....!!
|