0

構造体があり、SendMessage 関数が呼び出されるたびに配列サイズを増やしたい

struct MQStruct {
    wchar_t *serviceName; 
    int durability; 
    int msgType; 
    int msgHeader; 
    wchar_t *msgId; 
    wchar_t *payload; 
    int payloadSize; 
    int ttl; 
    int priority;
}MQStructObj[1];


int SendMessage(wchar_t *serviceName, int durability, int msgType, int msgHeader, wchar_t *msgId, wchar_t *payload, int payloadSize, int ttl, int priority) {

//Want to add one more array object and also preserve data of previous
MQStructObj[MAX+1]

return 0;
}
4

1 に答える 1

2

C では、動的メモリを自分で処理する必要があります (つまり、 を使用して配列を割り当てmalloc()、それを使用しなくなったときに呼び出すように注意するfree()など)、おそらく を使用realloc()して割り当てを拡大する必要があります。

C++ では、問題はすでに解決されており、std::vector. push_back要素を動的に追加するために呼び出すことができます。

于 2013-01-15T10:00:25.227 に答える