相关疑难解决方法(0)

如何通过偏移获取/设置结构成员

忽略填充/对齐问题并给出以下结构,在不使用成员名称的情况下获取和设置member_b的值的最佳方法是什么.

struct mystruct {
    int member_a;
    int member_b;
}
struct mystruct *s = malloc(sizeof(struct mystruct));
Run Code Online (Sandbox Code Playgroud)

换一种方式; 您如何在指针/偏移方面表达以下内容:

s->member_b = 3;
printf("%i",s->member_b);
Run Code Online (Sandbox Code Playgroud)

我的猜测是

  • 通过查找member_a(int)的size来计算偏移量
  • 将结构转换为单个指针类型(char?)
  • 创建一个int指针并设置地址(到*charpointer + offset?)
  • 使用我的int指针设置内存内容

但是我对于转换为char类型有点困惑,或者如果类似的东西memset更合适或者通常我正在处理这个完全错误.

欢呼任何帮助

c struct

27
推荐指数
2
解决办法
4万
查看次数

标签 统计

c ×1

struct ×1