【发布时间】:2012-03-29 02:49:59
【问题描述】:
对不起,如果标题有点混乱。我正在做的是创建一个结构,例如:
struct record
{
int value;
int key;
};
然后使用 typedef 调用指针来记录“Item”,如下所示:
typedef struct record* Item;
基本上,如果有人碰巧有这本书,我会关注 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 上方,因此编译错误消失了。我得到的是一个段错误,所以我仍然分配错误:)
【问题讨论】:
-
+1 表示措辞恰当、完整的问题,包括您尝试过的内容的描述和错误消息。 如此令人耳目一新
-
您是否为数组中的每个项目分配内存?