如何在运行时增加struct数组大小

时间:2013-01-15 09:58:14

标签: c++ c

我有一个结构,并希望在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;
}

1 个答案:

答案 0 :(得分:2)

在C中你将不得不处理动态内存(即使用malloc()分配数组,然后在你停止使用它时注意调用free()),并且可能使用{{ 1}}增加分配。

在C ++中,问题已经解决,你有realloc()。您可以致电std::vector动态添加元素。