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

How to increase struct array size at runtime

本文关键字:数组 结构 增加 运行时      更新时间:2023-10-16

我有一个结构,想要增加数组大小每当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::vector。您可以调用push_back来动态地添加元素。