Q&A

  • 구조체 초기화 재 질문..
아직 답변이 없네요..

넘 쉬워서 저에게 기회를 주시는 것 같은데요..저 정말 모르겠어요..



P5012 : 구조체

지금 확인된건요..

FillChar(P5012^, nSize, ini_Char);

저기에서 ini_Char에 어떤값을 넣어 주더라도 초기화만 되고



그것을

T5012 : PChar;

move(P5012^, T5012[0], sizeof(TCFU5012C));

했을땐 T5012에 아무것도 없다는 거에요..

그래서 구조체 각각의 맴버변수에 #2로 채워봤지요..그러면 제대로 작동을 해요..

구조체 맴버 변수에 각각 넣어 주기는 넘 싫거든요..

한꺼번에 넣어주거나 초기화 부분에서 다른 방법이 있을까요..

초기화에서 #2를 넣어주면 나중에 move하더라도 #2값이 그대로 넘어 오도록 이요..

제발 답변좀 해주세요..

T_T (엉엉..)

1  COMMENTS
  • Profile
    델피언 2000.08.30 03:43
    음~

    문제는 역시 move문 이었습니다.

    혹시 이런 방법이 일반적인 처리 방법이 아닐지도 모릅니다.

    이 방법에 대한 의견을 듣고 싶습니다.



    구조체를 일단 초기화를 합니다.

    ini_char := #2



    FillChar(P5012^, nSize, ini_Char);

    초기화 잘 됩니다.

    다음이 문제인데요..

    구조체의 맴버변수에 값을 넣어줄때

    Media : array[1..3]of char; 이라면



    move('03', Media[1], sizeof(Media));



    하게 되면 그 다음 맴버변수부터는 데이터가 들어 오지 않습니다. (이유는 모르겠지만요)

    해결책은



    move('03', Media[1], length('03'));



    이렇게 넣고자 하는 데이터 길이 많큼 잡아서 넣어주면 처음에 #2로 초기화했던

    맴버변수및 넣어주고 남은 자리까지 #2로 남게 됩니다.

    혹시 이런 방법이 일반적인 처리 방법이 아닐지도 모릅니다.

    이 방법에 대한 의견을 듣고 싶습니다.

    제발 의견 써주세요..

    정도의 길로 가고 싶은 델피언...



    델피언 wrote:

    > 아직 답변이 없네요..

    > 넘 쉬워서 저에게 기회를 주시는 것 같은데요..저 정말 모르겠어요..

    >

    > P5012 : 구조체

    > 지금 확인된건요..

    > FillChar(P5012^, nSize, ini_Char);

    > 저기에서 ini_Char에 어떤값을 넣어 주더라도 초기화만 되고

    >

    > 그것을

    > T5012 : PChar;

    > move(P5012^, T5012[0], sizeof(TCFU5012C));

    > 했을땐 T5012에 아무것도 없다는 거에요..

    > 그래서 구조체 각각의 맴버변수에 #2로 채워봤지요..그러면 제대로 작동을 해요..

    > 구조체 맴버 변수에 각각 넣어 주기는 넘 싫거든요..

    > 한꺼번에 넣어주거나 초기화 부분에서 다른 방법이 있을까요..

    > 초기화에서 #2를 넣어주면 나중에 move하더라도 #2값이 그대로 넘어 오도록 이요..

    > 제발 답변좀 해주세요..

    > T_T (엉엉..)