Sorry, wenn der Titel ein wenig verwirrend ist. Was ich tue, ist es, eine Struktur zu schaffen, wie:Zuweisen von Werten zu einem Schlüssel in einem Zeiger auf einen Datensatz in C
struct record
{
int value;
int key;
};
Dann ein typedef mit einem Zeiger rufen zu „Item“ wie folgt auf:
typedef struct record* Item;
Grundsätzlich folge ich, wie es war getan in Algorithms in C von Robert Sedgewick (dritte Ausgabe) auf Seite 290 für den Fall, dass jemand dieses Buch hat.
Worauf ich Probleme habe, ist das Einlesen eines Wertes von der Konsole und dann das Zuweisen des Schlüssels. Hier ist, was ich habe, und die Fehler, die ich bekomme:
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
Wenn ich einen Schub in der richtigen Richtung bekommen könnte, würde ich wirklich zu schätzen. Ich habe das Programm für diesen Auftrag perfekt funktioniert, als Item nur einfache Ints war, aber jetzt versuche ich Item-> Key zu benutzen und bin ein wenig verloren :) Danke!
Wenn jemand einen anderen Teil des Codes benötigt, den ich nicht für nötig hielt, werde ich ihn posten, sobald ich die Anfrage sehe.
Revision: Ich habe meine setKey-Funktion über StandInput bewegt, so dass der Kompilierungsfehler verschwunden ist. obwohl das, was ich bin immer ein Segment Fehler, so dass ich die Zuweisung noch es falsch :)
+1 für eine gut formulierte, vollständige Frage einschließlich Beschreibung von dem, was Sie versucht und Fehlermeldung. * so * erfrischend zu sehen – bernie
Ordnen Sie Speicher für jedes Element im Array zu? – Cornstalks