私はできるだけ簡潔にしようとします。 だから、私は2つの構造体があります。今、これは編集不可のコードで、上記のすべての可能なミスを違いを無視、構造体のポインタからの構造体の値へのアクセス
typedef struct someStruct named;
struct someStruct {
void *key;
void *value;
};
typedef struct anotherStruct namedToo;
struct anotherStruct {
named **table;
unsigned int size;
};
オーケー偉大を。
namedToo *init(float ignoreThis) {
namedToo *temp;
temp = malloc(sizeof(namedToo)); //some memory for the second struct
temp->table = malloc(sizeof(named)*100); //lets say this 100 is for 100 buckets/cells/named elements
return temp;
方法2:
は今、私は2つの方法を持っている
int insert(namedToo *temp, void* key, void* value) {
temp->table[0]->key = key; //My problem, I need to access the value and key inside named from the pointer inside namedToo. How can I do this?
}
をコメントは私の問題があります。 私の問題は、私はポインタから名付け内の値とキーにアクセスする必要があります内部のnamedToo。これどうやってするの?私は時々彼ら自身の価値/キーを変更して取得する必要があります。
名前 'table'は、1次元配列ではなく2次元配列として扱うべきであることを示しています。それは事実ですか? – dbush
その可能性はありますが、必要ではありません。なぜなら、その理由は、ハッシュテーブル/マップの残りの部分があるからです。最初の構造体には別個の連鎖のための別の要素を指すポインタがありますが、ここには含まれていません。使用される名前は完全に任意であると仮定します。 @dbush – Monkleys
'init'はポインタへのポインタとして' table'を正しく初期化しません。 – aschepler