私はこれに問題があります。次のような単純な構造体の設定があるとしましょう。
typedef struct http_header
{
char *name;
char *value;
} http_header_t;
typedef struct http_request
{
char *verb;
char *path;
char *version;
int num_headers;
http_header_t headers[MAX_HEADERS];
} http_request_t;
どのように私は新しい書きくださいhttp_header_t
にはheaders
、新たなにhttp_request_t
?
他の構造体コンポーネントと同じように、それらにアクセスして割り当てるだけで、それに「書き込む」ことができます。ヘッダー構造体の配列は、要求構造体内で明示的に宣言されているため、新しい要求構造体にはすでに「存在」していMAX_HEADERS
ます(すべてを「使用」するかどうかに関係なく、割り当てられます)。インデックスでアクセスします。
http_request_t request;
request.headers[0].name = ...
リクエストに「コピーイン」したい他の場所からのヘッダー構造体がすでにある場合、それを行うにはいくつかの方法があり、最も慣用的なものはコンテキストによって異なります。
これはnum_headers
、その配列内の有効なデータを含むヘッダー構造体の数を示すように設定されているようです(割り当てられて使用されていないヘッダー構造体がさらにある場合でも)。別のヘッダーオブジェクトから新しいものを追加する場合は、次のようにカウンターを割り当ててからインクリメントできます。
request.headers[request.num_headers] = some_header_obj;
request.num_headers++;
等。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加