1
내 프로그램에 다음 구조가 있습니다.숫자 배열 구조체에 문자 배열 필드
#define WIFI_DEVICE_NAME 100
#define WIFI_SERIAL_NO 13
#define WIFI_PROD_NAME 7
typedef struct WiFiDeviceInfo
{
char name[WIFI_DEVICE_NAME];
char fullname [WIFI_DEVICE_NAME];
char productname[WIFI_PROD_NAME];
char serialnumber[WIFI_SERIAL_NO];
};
이 구조체는 다양한 위치에서 사용됩니다. 때때로 일부 필드가 비어있을 수 있습니다. 따라서 strcpy_s()
을 사용하여 복사하는 동안 오류가 발생합니다. 그래서 복사 작업을 수행하기 전에 strlen()
으로 시도했습니다.
구조체를 수정하고 다음 디자인을 제안했습니다.
typedef struct WiFiDeviceInfo
{
char name[WIFI_DEVICE_NAME];
unsigned short nLenName;
char fullname [WIFI_DEVICE_NAME];
unsigned short nLenFullName;
char productname[WIFI_PROD_NAME];
unsigned short nproductname;
char serialnumber[WIFI_SERIAL_NO];
};
나는 STL을 사용하지 않는 레거시 코드, 이후 여기에 STL을 사용할 수 없습니다. 구조를 설계하는 더 좋은 방법이 있습니까?
를 NULL로 설정처럼 메모리를 처리하는 구조체에 생성자와 소멸자를 추가, 삭제 ...이 작업을 수행한다는 의미는, 당신은 리팩토링 수 있습니다 사용하는 코드. – Puppy
정확히 STL을 사용할 수없는 이유는 무엇입니까? 나는 "나머지 코드는 그것을 사용하지 않는다"고 생각하지 않는다. 충분한 이유가있다. – svick
@DeadMG 여기 STL을 사용할 수 있다면이 질문을하지 않아도됩니다. –