我的代碼有另一個問題。我想用一個簡單的指針用法訪問所有3個值。但是我的指針跳得太遠了。 我的輸出是這樣的:使用指針訪問數組的兩個結構
值爲1
值是4194432
值是2686824
我想,我的問題是,我的指針來自錯誤的類型。所以,指針++不會跳轉到下一個數組元素。我真的不知道,我怎麼能解決這個問題。 (這只是一個簡單的例子來重現我的問題,所以不要找感覺在做這個)
typedef struct _A {
int value;
}A;
typedef struct _B {
A array[10];
}B;
int main()
{
A atest;
B btest;
B *p=NULL;
btest.array[0].value=1;
btest.array[1].value=3;
btest.array[2].value=5;
p=malloc(10 * sizeof(btest));
p=&btest.array;
int i=0;
for(i=0;i<3;i++)
{
printf("\n%d. Value is %d\n",i+1,p++->array->value);
}
return 0;
}
THX閱讀,如果事情是在我的解釋失蹤的話,我會道歉,並添加它。
編輯:
此外,以一些程序員多德Sollution,我添加了一個簡單的鑄件機械:
q=(A*) p;
q++;
p =(B*)q;
THX對您有所幫助:)
以undewrscore開頭的名稱保留用於所有名稱空間的文件作用域實現!無論如何,像「A」這樣的名字都是不合適的。 – Olaf