C++ 如何在运行时增加结构数组大小
我有一个结构,希望在SendMessage函数调用时增加数组大小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]
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问题,是吗?和
c
或c++
@kmkaplan这就是为什么我回答了OP在这两种情况下的选项。如果有办法改进答案,请说出来,我会尽力去做。@IvayloStrandjev对不起,我一定不清楚。我的意思是,名字C和C++的排版在你的答案中是错误的。您可以用小写字母编写,并使用类似于字体的代码,而不是大写字母和普通字体。你写的是代码> C <代码>,它应该是C和<代码> C++ >代码>而不是C++。总之,这只是一个小小的吹毛求疵。