gpt4 book ai didi

c++ - 如何避免为未使用的属性分配内存

转载 作者:太空宇宙 更新时间:2023-11-04 14:40:55 24 4
gpt4 key购买 nike

我有一个 Message 类,它包含一条消息可能包含的所有可能元素:

class Message {
int msg_id;
int msg_length;

char *username;
char *password;
char *usr_list;
char *to;
char *from;
char *grp_name;
int digit_1;
int digit_2;
char *msg;
};

但是不同的消息类型有不同的正文元素,并且从中创建一个对象会浪费大量内存。例如,我的程序接收到以下数据:

Msg -> (1, name, password)

当程序读取1 时,它会创建一个Message 对象,设置其名称和密码并将其转发给另一个类。现在剩余的属性为空且未使用,但仍会占用内存。

我该如何解决这个问题?

更新:在这种情况下,访问者模式会帮助我吗,我不确定是否针对此类问题。

最佳答案

由于 Basile 的回答在全局范围内都是正确的,我认为说明以下内容很重要。

如果您正在尝试实现通信协议(protocol),我建议您使用常用的数据序列化库。

这些库允许您轻松地声明通信协议(protocol),它们包括对此类功能的支持等等,并且受到许多不同语言的支持。

可以找到完整的选项列表 here .

我过去曾成功使用过这些:

关于c++ - 如何避免为未使用的属性分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com