私は構造体の上にchar配列を設定しようとしていますが、それを印刷しようとしました。私はセグメンテーション違反を取得します。私は間違って何をしていますか?この文字列を印刷するときに間違っているのはなぜですか?
typedef struct buckets_{
char *key;
data *next;
}buckets;
typedef struct hash_table_ {
int (*hash_func)(char *);
int (*comp_func)(void*, void*);
buckets **buckets_array;
} hash_table, *Phash_table;
table_p -> buckets_array[0] = malloc(sizeof(buckets));
table_p -> buckets_array[1] = malloc(sizeof(buckets));
char word2[5] = "Hieo";
table_p -> buckets_array[1] -> key = malloc(sizeof(word2));
table_p -> buckets_array[1] -> key = word2;
printf("%s",table_p -> buckets_array[i] -> key); /*Getting segmitation falut here*/
Oppは配列を割り当てる関数を持っていたことを忘れていました。配列が割り当てられているとします。
はい私はいくつかのコードを含んでいませんでした。私はこれの前に配列を割り当てました。しかし、あなたの2番の声明は、なぜ私がエラーを受けているのかもしれない。 –
@LearningC私は3が原因である可能性が高いと考えています。 –
はい、そうでした。ありがとうございました。他の関数からその行をコピーしたので、私はそれを忘れてしまった。ありがとうございました。 –