C++ 如何在运行时增加结构数组大小

C++ 如何在运行时增加结构数组大小,c++,c,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]

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

在C语言中,您必须自己处理动态内存(即使用
malloc()
分配数组,然后在停止使用时小心调用
free()
),并可能使用
realloc()
增加分配


在C++中,问题已经为你解决了,你有了<代码> STD::向量< /代码>。您可以调用<代码> PuxSuff< <代码>,动态添加元素。< />代码:STD::vector < /代码>。这看起来像是一个C问题,是吗?和 STD::WSCOR> < /代码>,而不是<代码> WCARGET**/COD> .<代码> RealCube()/代码>,而不是<代码> RealOrthAuto()>代码>和<代码> MalCube()>代码>,而不是<代码>()(代码)>,这是C和C++,不是
c
c++
@kmkaplan这就是为什么我回答了OP在这两种情况下的选项。如果有办法改进答案,请说出来,我会尽力去做。@IvayloStrandjev对不起,我一定不清楚。我的意思是,名字C和C++的排版在你的答案中是错误的。您可以用小写字母编写,并使用类似于字体的代码,而不是大写字母和普通字体。你写的是代码> C <代码>,它应该是C和<代码> C++ >代码>而不是C++。总之,这只是一个小小的吹毛求疵。