gpt4 book ai didi

c - 为指向 C 中记录的指针中的键赋值

转载 作者:太空狗 更新时间:2023-10-29 14:59:35 24 4
gpt4 key购买 nike

抱歉,如果标题有点困惑。我正在做的是创建一个结构,例如:

struct record
{
int value;
int key;
};

然后使用 typedef 调用指针来记录“Item”,如下所示:

typedef struct record* Item;

基本上,我正在关注第 290 页上 Robert Sedgewick(第三版)在 C 中的算法中是如何完成的,以防有人碰巧拥有这本书。

我遇到的问题是从控制台读取一个值,然后将其分配给键。这是我所拥有的,以及我遇到的错误:

void setKey(Item *element, int x)
{
element->key = x;
}

void standInput(Item A[], int length)
{
int i;
int x;
for(i = 0; i < length; i++)
{
printf("Enter a value for spot %i: ", i+1);
scanf("%d", &x);
setKey(A[i], x);
}
}

gcc Item.h
Item.h:33:6: warning: conflicting types for ‘setKey’
Item.h:23:3: note: previous implicit declaration of ‘setKey’ was here

如果我能得到正确方向的插入,我将不胜感激。当 Item 只是简单的整数时,我得到了这个作业的程序完美地工作,但现在我正在尝试使用 Item->Key 并且我有点迷路了:)谢谢!

如果有人需要我认为不需要的任何其他代码部分,我会在看到请求后立即发布。

修订:我将 setKey 函数移到 standInput 上方,因此编译错误消失了。我得到的是段错误,所以我仍然分配错误 :)

最佳答案

setKey 接受一个指向 Item 的指针。 A[i] 不是指向 Item 的指针,而是一个实际的 Item 对象。

要将其作为指针传递,请执行以下任一操作:

setKey(A + i, x);

setKey(&A[i], x);

关于c - 为指向 C 中记录的指针中的键赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com