c - C中的随机成员访问
问题描述
假设一个结构像:
struct node{
int a;
int b;
char c;
struct node* next;
}
以及一个使用 tmp 指针遍历单链表的函数;
void getMember(char* member_name){
While(tmp != NULL){
//here, I'd like to access a user defined member passed into the function
// something like printf("%d\t", tmp[member_name]);
tmp = tmp->next;
}
}
我尝试使用指针算法通过偏移量来访问它,例如:
//suppose member_name is instead an offset of size, like sizeof(int), rather than the char* shown above;
printf("%d\t",*(&(tmp)+member_name);
但是由于填充,算术在结构中不能保证,就像它是数组一样。除了打开打包(我认为这会使算术工作)之外,如何在 C 中实现对结构成员的随机访问?用这种数据结构能实现吗?还是需要使用其他东西?
解决方案
推荐阅读
- python - Julia中数组的逻辑运算
- mysql - 查询这些表的最佳方法是什么
- mysql - MySql - 数据透视表
- python - Python 中的 await 与 asyncio.run()
- python - 在python中的特定字符之后拆分字符串
- ecmascript-6 - 使用带有不受信任字符串的模板文字来设置属性值时是否存在 XSS 风险?
- java - java.lang.IllegalArgumentException:VM 或 OS 已使用的信号
- java - Hibernate:来自非实体类的实体属性
- php - PHP没有将数据插入数据库
- r - R - 在循环中使用正则表达式进行变异