Przepraszam, jeśli tytuł jest trochę zagmatwany. Co robię jest stworzenie struktury, takie jak:Przypisywanie wartości do klucza w wskaźniku do rekordu w C
struct record
{
int value;
int key;
};
Następnie za pomocą typedef zadzwonić wskaźnik do nagrywania „produkt” tak:
typedef struct record* Item;
Zasadniczo Obserwuję, jak to było wykonane w Algoriths in C przez Roberta Sedgewicka (trzecie wydanie) na stronie 290 na wypadek, gdyby ktoś miał tę książkę.
Mam problem z odczytaniem wartości z konsoli, a następnie przypisaniem jej do klucza. Oto, co mam, i błędy, które dostaję:
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
Gdybym mógł sugerować w dobrym kierunku, będę naprawdę wdzięczny. Dostałem program do tego zadania działającego idealnie, kiedy Przedmiot był po prostu prosty, ale teraz próbuję użyć Item-> Key i jestem trochę zagubiony :) Dzięki!
Jeśli ktoś potrzebuje jakiejkolwiek innej części kodu, o której nie myślałem, że to konieczne, opublikuję ją, gdy tylko zobaczę prośbę.
Rewizja: Przenieśliłem funkcję setKey powyżej standInput, więc błąd kompilacji zniknął. Co ja dostaję chociaż jest usterka odcinek, więc jestem nadal przypisując to źle :)
+1 za dobrze sformułowane, pełne pytanie zawierające opis wypróbowanego i komunikat o błędzie. * więc * odświeżenie, aby zobaczyć – bernie
Czy przydzielasz pamięć dla każdego elementu w tablicy? – Cornstalks