初心者、アドレスにデータを格納し、Cの変数のアドレスを変更しますか?ここ
は、私は言葉そのもののためのchar配列を含む単語のための構造体を持っている(構造体は私の質問に関係のない他の機能を持っている)、私はそれを保存しようとしていますハッシュマップ。ワード構造体ポインタの配列です。私のプログラムでは、新しい単語が見えるたびに、新しい単語structを作成し、文字配列mallocを作成します。しかし、ループを数回実行すると、別のハッシュマップの場所にあっても古い単語が新しい単語に変更されます。
私は新しいアドレスに新しい単語の構造体ポイントを作成するループを持つことが可能ですか?
struct words add;
int b;
for(b = 0; b < strlen(LowerCaseCopy); b++)
{
add.word[b] = '\0';
}
for(b=0;b< strlen(LowerCaseCopy);b++)
{
add.word[b] = LowerCaseCopy[b];
}
hashmap[hashf] = &add;
これは問題のコードです。
私の問題の例: ループの最初のスルースルー、私は特定のハッシュマップスロットに格納されているappleにadd.wordを設定しました。 ループの次回の実行で、add.wordをオレンジ色に設定しました。これは別のスロットに保存されています。問題は、最初のスロットではリンゴを保存しておらず、代わりにオレンジ色を保存しているので、オレンジ色の2つのスロットがあり、これは私が望んでいないものです。これをどうやって解決するのですか?
どのように 'hashf 'の値を取得しますか?それは変わったのですか? – Philip
'b
はい、hashfが変更されています、これは私のコードの単なるセクションです、私はループ内にこのセクションを持っています。ループの各反復で変数を再利用すると、アドレスは変更されませんか? – Kevin