当前位置: 首页 > news >正文

【无标题】动态给结构体赋值

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
int id;
char name[20];
double score;
} Student;

int main() {
Student *p = (Student *)malloc(sizeof(Student));
if (p == NULL) {
printf(“Memory allocation failed.”);
return -1;
}

p->id = 1; // 给结构体成员变量赋值的方式之一
strcpy(p->name, "Tom");
p->score = 90.5;printf("Before assignment: id=%d, name=%s, score=%.1f\n", p->id, p->name, p->score);int new_id = 2;
double new_score = 95.0;// 动态给结构体成员变量赋值
*(int *)((char *)p + offsetof(Student, id)) = new_id;
*(double *)((char *)p + offsetof(Student, score)) = new_score;printf("After assignment: id=%d, name=%s, score=%.1f\n", p->id, p->name, p->score);free(p);
return 0;

}

http://www.lryc.cn/news/31016.html

相关文章:

  • centos7 soft raid每周自动同步的问题
  • 嵌入式Linux内核代码风格
  • Andorid:关于Binder几个面试问题
  • 【剑指Offer-Java】包含min函数的栈?
  • 红队APT——邮件钓鱼攻击SwaksOffice漏洞RLO隐藏压缩释放
  • 【Java|基础篇】超详细讲解运算符
  • Promise-异步回调
  • 【设计模式之美 设计原则与思想:设计原则】21 | 理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?
  • 深度学习 | 入个Pytorch的小门
  • 应用上云指导
  • 进程概念~
  • 三天吃透Java基础八股文
  • YOLOv8训练自己的数据集(超详细)
  • 【洛谷 P1088】[NOIP2004 普及组] 火星人 题解(全排列+向量)
  • 基于混合蛙跳算法优化SVM的滚动轴承故障诊断python实现
  • 如何让AI帮你干活-娱乐(2)
  • 文件异步多备常用方案
  • java面试八股文之------Redis夺命连环25问
  • 【数据结构】AVL平衡二叉树底层原理以及二叉树的演进之多叉树
  • K8S篇-安装nfs插件
  • xmu 离散数学 卢杨班作业详解【4-7章】
  • 多重背包问题中的二进制状态压缩
  • 汇编语言程序设计(四)之汇编指令
  • Vant2 源码分析之 vant-sticky
  • 【自然语言处理】【大模型】大语言模型BLOOM推理工具测试
  • 云桌面技术初识:VDI,IDV,VOI,RDS
  • 基于本地centos构建gdal2.4.4镜像
  • 生产环境线程问题排查
  • Day908.joinsnljdist和group问题和备库自增主键问题 -MySQL实战
  • 算法 - 剑指Offer 丑数