我遇到了void * to struct的問題。我的C++代碼如下:如何在第二個struct中訪問由void *指向的結構的元素
struct BUFF_TYPE {
int a;
int b;
};
typedef struct BUFF_TYPE BUFF_TYPE;
struct REG_TYPE {
int c;
void *buff;
};
typedef struct REG_TYPE REG_TYPE;
REG_TYPE regs[20];
const BUFF_TYPE b_A = {3,5};
void func_x() {
int x,y;
regs[4].buff = (BUFF_TYPE*)&b_A;
x = regs[4].buff->a;
y = regs[4].buff->b;
}
它給我:
error: ‘void*’ is not a pointer-to-object type
在x和y分配
,你能告訴我如何訪問這些a和b的值?
順便說一句,我需要void *,因爲有時我需要指向其他類型的緩衝區。
這是C嗎?還是C++? – robert
你好,它在C++ –
你需要發佈你正在編譯的確切代碼。您最初發布的代碼有幾個錯別字。 (我已經修好了。)另外,''typedef's在C++中是不必要的;如果你聲明瞭一個'struct BUFF_TYPE'類型,你可以把它稱爲'BUFF_TYPE'。 (這與C不同) –