我的代码有另一个问题。我想用一个简单的指针用法访问所有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