|
S를 포인터로 지정하시면
wsprintf가 데이터를 저장하려고 하는데, S 포인터가 가리키는 메모리 위치는
쓰레기값의 위치이기 때문에 access violation 에러를 뿜게 됩니다.
간단하게 char S[충분한크기]; 하셔서 사용하시면 됩니다.
[code]
char S[1024]; // 1024는 wsprintf가 처리할 수 있는 최대값
[/code]
번외편 님이 쓰신 글 :
: 전 이런식으로 했는데 이렇게 S를 *S로 지정을 해주면 안되는 것인가요?
: 실행시키면 3초만에 에러가 뜨는데 제가 어떤 실수를 하고 있는지좀
: 알려주셨으면 감사하겠습니다~
:
: void __fastcall TForm1::Timer1Timer(TObject *Sender)
: {
: char *S;
:
: in_addr inadd=ClientSocket1->Socket->LookupName("");
: wsprintf(S,"%d.%d.%d.%d",inadd.S_un.S_un_b.s_b1
: ,inadd.S_un.S_un_b.s_b2
: ,inadd.S_un.S_un_b.s_b3
: ,inadd.S_un.S_un_b.s_b4);
:
:
: Label9->Caption = S;
:
: 그리고 인디에 Gstack이 있다는데 C++ Builder 6.0에 기본적으로 들어있는건가요?
: 아니면 컴포넌트를 받아야하는건지도 알려주세요;;
|