所以,我有一個結構如果已知偏移量,如何獲得結構的成員?
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'和朋友打印指針]。 –