如何给已经定义好的结构体,重新增加几个(个数动态变化)变量,以便程序的其他地方给这几个变量赋值,

hacklinshell 2016-05-18 09:03:57
例如,我已经定义好了结构体
typedef struct _json_context_t{
int wifi_connected;
int wifi_strength;
char wifi_ssid[32];
char wifi_ip[16];
char wifi_mac[16];
int gprs_connected;
char phonenumber[12];
char IMEI[20];
}json_context_t;


然后我从其他服务端解析到了3个(个数动态的)变量,
int dht11_temp_data;
int dht11_hum_data;
int gp2y101_value;
如何动态的将这3个变量增加到原来的结构体中,
...全文
417 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Saleayas 2016-05-19
  • 打赏
  • 举报
回复
你就算加上也没有用,因为使用者不知道。 在很多使用,我们需要动态的使用一个数据结构。 此时需要使用一个标识来表示这个结构的额外数据。 使用 flag and union 来标识 数据。 在结构体开始定义一个 size 来表示这个结构数据的大小。 你可以看到 Windows API 很多传入和传出结构都是有 Size 的。 就是他的数据就像你这样的。
struct
{
int size;
int flag;
union
{
struct 
{} _1;
struct
{
} _2;
}
}
ghx287524027 2016-05-19
  • 打赏
  • 举报
回复
改不了~~~
赵4老师 2016-05-19
  • 打赏
  • 举报
回复
realloc ?
小灸舞 版主 2016-05-19
  • 打赏
  • 举报
回复
在结构体中放个void *指针?
有3个int的时候就转换成int *,并且分配3*sizeof(int)的空间
如果是double,那就转成double *
xigua1102 2016-05-19
  • 打赏
  • 举报
回复
结构体不能动态修改
paschen 2016-05-19
  • 打赏
  • 举报
回复
结构体的定义是在编译前,编译好的程序运行时全是二进制数据了
lm_whales 2016-05-19
  • 打赏
  • 举报
回复
1)修改原来的代码 2)传递结构体指针并强制转换
【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)内容概要:本文围绕“基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究”展开,重点介绍了利用小生境粒子群算法对配电网中的有功与无功功率进行协调优化的方法。研究结合Matlab代码实现,旨在降低网络损耗、提升电压质量,并增强配电网运行的经济性与稳定性。文中详细阐述了改进多目标粒子群算法的设计思路,包括引入小生境机制以增强种群多样性、避免早熟收敛,同时构建了综合考虑有功出力调节、无功补偿装置投切及分布式电源协同控制的优化模型。通过在标准测试系统(如IEEE33节点系统)上的仿真验证,展示了该方法在多目标优化中的有效性与实用性。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事电力系统优化、智能算法应用及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于含分布式电源的主动配电网运行优化;②解决多目标环境下有功与无功资源的协同调度问题;③为配电网节能降损、电压调控提供算法支持与仿真验证手段; 阅读建议:建议结合提供的Matlab代码进行仿真实践,重点关注算法参数设置、适应度函数设计及多目标解集的Pareto前沿分析,同时可扩展至不同网络结构与运行场景以加深理解。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧