这是在结构中声明双向链表的正确程序。如果这与任何相关性,我正在使用该结构读取文本文件。
#define MAX 20
//struct to order contactList
struct contact
{
string firstName[MAX],lastName[MAX],email[MAX],companyName[MAX];
long phoneNum[MAX];
struct listelement *link
struct node *next;
struct node *prev;
};
答案 0 :(得分:4)
可能不是。通常情况下,您使用struct contact *next; struct contact *prev;
,因为列表中的项目(可能)struct contact
而不是struct node
。
因此,我希望看到:
#define MAX 20
//struct to order contactList
struct contact
{
string firstName[MAX];
string lastName[MAX];
string email[MAX];
string companyName[MAX];
long phoneNum[MAX]; /* 20 phone numbers per contact — wow! */
struct listelement *link; /* Semi-colon added. What is this for? */
struct contact *next;
struct contact *prev;
};
结构的电子邮件元素太短(例如,我的主电子邮件地址不适合;至少需要32个字节,我建议)。对于一个联系人来说,这是一个非常多的电话号码。此外,long
不会存储所有10位数的电话号码。
目前尚不清楚link
元素的用途。它可能是涉及这些结构的单链表的一部分。