|
Constructor를 쓰면 간단하지만, 그것을 사용하지 않는 방법을 물어보신거 같네요.
memset을 쓰면 해결될거 같습니다.
우선 char 관련 값을 struct 의 앞부분으로 이동시키기 바랍니다.
struct SDummyData // Dummy Data
{
public:
char szStatusCode[2]; // 요렇게
char szCCoilNo[13]; // 요렇게
char szDecisionKind[11]; // 요렇게
int nCoilThick;
int nCoilWidth;
int nCoilLength;
int nCoilWeight;
int nUseCount;
};
그 다음에 char 갯수만큼 memset으로 20으로 초기화 시키고...
포인터를 char 갯수만큼 이동시켜서 0으로 초기화하면 될거예요.
memset( &m_sDummyData, 20, 26 );
memset( (&m_sDummyData)+26, 0, sizeof(int)*5 );
위에서는 char가 26바이트 만큼 있어서 위와 같은 코드가 되었네요.
그럼~~~
홍성일 님이 쓰신 글 :
: struct SDummyData // Dummy Data
:
: {
:
: public:
:
: char szStatusCode[2];
:
: int nCoilThick;
:
: char szCCoilNo[13];
:
: int nCoilWidth;
:
: char szDecisionKind[11];
:
: int nCoilLength;
:
: int nCoilWeight;
:
: int nUseCount;
:
: };
:
: SDummyData m_sDummyData;
:
:
:
: 위와 같은 struct가 있다고 가정하고..
:
:
:
: 위의 struct member에 char type은 0x20(space) int type은 0을 일일이 각 struct변수에 대입하지 않고
:
:
:
: 자동적으로 초기화(할당)할수 있는 방법은 없을까여?
|