所以,我有一个结构如果已知偏移量,如何获得结构的成员?
struct foo
{
int a;
int b;
int c;
char *string;
};
typedef struct foo foo;
而且我有一个函数
void fun(void *data1, void *data2, int offset){
int num1 = *(int *)(data1 + offset);
int num2 = *(int *)(data2 + offset);
printf("%d %d\n", num1, num2);
}
而且它的伟大工程。但是当我尝试用字符串做同样的事情时,有些东西是错误的。
void fun(void *data1, void *data2, int offset){
char *str1 = (char *)(data1 + offset);
char *str2 = (char *)(data2 + offset);
printf("%s %s\n", str1, str2);
}
功能只是打印一些随机字符。我开始拿到,因为指针的头痛...
你是如何调用'乐趣()'? – shf301
用'void'指针做算术是一个扩展。 –
顺便说一句,你本来自己,如果你与胶印印刷以及你的'foo'实例的基地址,然后有'fun'打印功能,它试图访问(提示的地址整理了这一点:使用'%用'printf'和朋友打印指针]。 –