Извините, если название немного сбивает с толку.Я создаю такую структуру, как:
struct record
{
int value;
int key;
};
Затем с помощью typedef вызываю указатель на запись "Item", например так:
typedef struct record* Item;
По сути, яследуя указаниям Роберта Седжвика (третье издание) на стр. 290, как это было сделано в разделе «Алгоритмы на Си» на случай, если у кого-нибудь появится эта книга.затем присвоить это ключу.Вот что у меня есть, и ошибки, которые я получаю:
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, поэтому ошибка компиляции исчезла.Хотя я получаю ошибку сегмента, поэтому я все еще неправильно ее назначаю:)