【发布时间】:2014-03-25 06:50:34
【问题描述】:
我只是想写一个简单的函数来将朋友添加到 UserAccount 列表中。所有信息都通过参数提供。如果用户已经在列表中,我不需要再次添加他,而是显示记录说他已经在列表中。我写了这段代码。不确定这是否正确,有什么改进代码的建议吗?这行得通吗?
int add_friend(UserAccount* user, char Circle, UserAccount* friend)
{
struct UserAccountNode *p;
p = (struct UserAccountNode *) malloc(sizeof(struct UserAccountNode));
while (p != NULL)
if(stricmp(user, p->friend) == 0){
p->next = head; // inserting at the beginning
head = p;
}
else {
printf("%d already exists", friend)
};
}
【问题讨论】:
-
在其他部分添加
break;。 -
if可能缺少{} -
你试过了吗?实际上缺少一半所需的代码。
-
@MichaelWalz 我没有,因为我没有编写整个程序来使上面的代码工作。我只是应该按照我认为应该的方式编写上面的代码。这就是为什么我不知道它是否正确
-
@user3315144:如果您的代码完全错误。 1) 您使用
p= malloc....为一个用户分配空间,然后将该指针用作指向应该包含用户列表的列表的指针。 2)你做strcmpi(user, p->friend),这是错误的,因为user不指向一个字符串。 3) 你不使用circle参数。 4) 你在没有提供所有需要的信息的情况下提出问题,UserAccount是什么?
标签: c linked-list nodes string-comparison