如何设置一个结构的指针指向C中的值?

时间:2014-03-17 21:41:50

标签: c pointers struct

假设:

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结构。我试图形成所有这些结构的基于数组的链表。

4 个答案:

答案 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;
}