我有许多相互依赖的结构数组。我正在努力与成员变量指针到另一个结构的数组中的记录。 放置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编写一个公共函数,以便它接受从调用函数传递的结构?对不起,如果我的任何编码错误。提前谢谢。
答案 0 :(得分:1)
这是对的
pstruct.ptr = &pstruct2;
这是对的
pstruct1[i].ptr = &pstruct2[j];
您的第一个问题'如何找到j值?'
我不知道,这是你的程序,只有你能知道它应该做什么以及如何计算j。
你的第二个问题'还有可能用一个未定义成员变量的参数struct编写一个公共函数,以便它接受从调用函数传递的结构吗?'
我认为你在谈论模板功能。
template <class T>
void common_function(const T& struc)
{
}
您可以使用任何结构调用该函数。但是模板是一个很难的主题,你应该得到一本关于C ++的书,这本书可以说明它们。