タイトルが少し混乱している場合は、ごめんなさい。このように「アイテム」を記録するためにポインタを呼び出すためのtypedefを使用して次にCのレコードへのポインタのキーに値を代入
struct record
{
int value;
int key;
};
:
typedef struct record* Item;
基本的に私はそれがあったか、次のよ私は何をやっていることのような構造を作成しています誰かがこの本を持っている場合に備えて、290ページのRobert Sedgewick(第3版)によってCのAlgorithsで行われた。
私が問題を抱えているのは、コンソールから値を読み取ってから、その値をキーに割り当てることです。ここでは、私が持っているものだ、と私は取得していますエラー:
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が単純なintであったときに、この課題のプログラムが完璧に機能しましたが、今はItem-> Keyを使用しようとしていて、少し失われています:)ありがとう!
私が必要と思わなかったコードの他の部分が必要な場合は、リクエストが表示されるとすぐに投稿します。
改訂:コンパイルエラーがなくなるように、standKeyの上にsetKey関数を移動しました。私はかかわらず、取得していますと、セグメント・フォールトであるので、私はまだそれが間違って割り当てるよ:)
+1あなたが試したことの説明とエラーメッセージを含め、十分に言及された完全な質問です。 * so *見た目がリフレッシュ – bernie
配列内の各Itemにメモリを割り当てていますか? – Cornstalks