在c ++中获取struct的相互依赖数组中的值

时间:2012-08-09 10:02:30

标签: c++ pointers struct circular-dependency

我有许多相互依赖的结构数组。我正在努力与成员变量指针到另一个结构的数组中的记录。 放置3个结构供您参考

struct struct1 {
int node_id;
struct2* ptr; };

struct struct2 {
int node_id;
int type;
struct1* owner;
struct2* next;
struct2* previous;
struct3* block1;
struct3* block2; };

struct struct3 {
int node_id;
int n_entries;
struct3* next_block; };

现在我的问题是如何获取struct1的记录。我知道它可以像

一样
struct1 pstruct1;

struct2 pstruct2;

pstruct.ptr = &pstruct2;

可能是因为每个结构中都有一组记录。 但是我应该使用什么结构数组,如果它类似于这个,

pstruct1[i].ptr = &pstruct2[j];

如何找到'j'值?也可以使用undefined成员变量的参数struct编写一个公共函数,以便它接受从调用函数传递的结构?对不起,如果我的任何编码错误。提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是对的

pstruct.ptr = &pstruct2;

这是对的

pstruct1[i].ptr = &pstruct2[j];

您的第一个问题'如何找到j值?'

我不知道,这是你的程序,只有你能知道它应该做什么以及如何计算j。

你的第二个问题'还有可能用一个未定义成员变量的参数struct编写一个公共函数,以便它接受从调用函数传递的结构吗?'

我认为你在谈论模板功能。

template <class T>
void common_function(const T& struc)
{
}

您可以使用任何结构调用该函数。但是模板是一个很难的主题,你应该得到一本关于C ++的书,这本书可以说明它们。