假设:
struct phoneNum{
int phoneNumber;
struct number *next;
};
struct phoneNum numbers [50];
for(y=0; y < 50; y++){
numbers[y].phoneNumber = 0;
numbers[y].next = -1;
}
如何将结构的指针设置为值?我一直试图将它设置为-1进行测试,但是当我尝试编译时出错。最后,我需要让指针指向另一个phoneNum结构。我试图形成所有这些结构的基于数组的链表。
答案 0 :(得分:2)
1)因为next是一个指针,所以你可以指定数字[y] .next = NULL
2)在你提到的问题“下一步,指向另一个phoneNum结构”然后应该修改结构
struct phoneNum
{
int phoneNumber;
struct phoneNum *next;
};
答案 1 :(得分:1)
设置&#39;数字[y] .next&#39;到ptr的值,NULL是可接受的值:
numbers[y].next = NULL;
-1不是ptr的有效值。
答案 2 :(得分:0)
您正在尝试将int
分配给struct number *
,这就是您遇到的错误。请改为numbers[y].next = (struct number *)(-1);
。
但这种指针的使用是不规则的。指针是&#34;未设置&#34;应设置为NULL
,而不是从口袋中取出的随机数。
答案 3 :(得分:0)
// to construct a linked list you should add link pointer with a same type of your structure
struct phoneNum{
int phoneNumber;
struct phoneNum *next;
};
struct phoneNum numbers [50];
for(y=0; y < 50; y++){
numbers[y].phoneNumber = 0;
// a pointer must be set to NULL, do not set to int "-1"
numbers[y].next = NULL;
}