1
私のプログラムには次の構造があります。char配列フィールドの数を持つ構造体を設計する
#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];
};
このStructはさまざまな場所で使用されています。いくつかのフィールドは空のままになることがあります。したがって、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を使用できるのであれば、この質問をする必要はありません。 –