Arrays 使用结构数组初始化结构指针
我有以下疑问 我有一个结构数组。在我将其直接初始化并在代码中使用之前。 但有人建议我使用指针而不是直接结构。但是我无法正确地获取指向structure数组的指针Arrays 使用结构数组初始化结构指针,arrays,pointers,initialization,structure,Arrays,Pointers,Initialization,Structure,我有以下疑问 我有一个结构数组。在我将其直接初始化并在代码中使用之前。 但有人建议我使用指针而不是直接结构。但是我无法正确地获取指向structure数组的指针 typedef struct { int a; int b; } cqiReport; cqiReport s_cqiReport[2][2]; cqiReport *ptr[2], *ptr2, *ptr3; s_cqiReport[0][0].a=1; s_cqiReport[0][0].b=1; *p
typedef struct
{
int a;
int b;
} cqiReport;
cqiReport s_cqiReport[2][2];
cqiReport *ptr[2], *ptr2, *ptr3;
s_cqiReport[0][0].a=1;
s_cqiReport[0][0].b=1;
*ptr= s_cqiReport;
*ptr2= s_cqiReport[0][0];
*ptr3= s_cqiReport[1][0];
我得到ptr[0]正确指向Scqireport[0][0],但ptr[2]指向一些垃圾。
如何获取指向Scqireport[1][0]的ptr2[1]点
请帮忙
谢谢
DSP家伙好吧,这有点乱。您将s_cqiReport作为多维数组,将ptr作为一维数组。线路
*ptr = s_cqiReport
没有道理
此外,您还没有将任何内容初始化为cqiReport的实际实例
尝试以下方法
cqiReport *foo = new cqiReport;
foo->a = 9;
foo->b = 3;
这并不能回答您的问题,但应该会有所帮助。您必须意识到数组实际上是一个指针,因此
*ptr
已经指向scqireport[0][0]
,因为它等于本身就是指针的scqireport
现在,如果你想让指针指向一个值,你必须使用&
操作符,它本质上意味着“的地址”,所以类似ptr3=&(s_cqiReport[1][0])
的东西使指针指向你想要的地方
同样地,我相信
ptr3=s_cliReport+2
也会使ptr3指向您希望它指向的地方,但我会避免对指针执行算术运算,直到您对指针及其工作方式有了深入的了解。HI Mj,实际上我不想使用指针初始化。初始化已经完成。我希望指针指向正确的结构数组地址。你在C或C++中工作吗?它看起来更像C而不是C++,但是你应该用语言指定重新标记你的问题。