Saya sedang dalam proses membuat tabel hash. Saya menggunakan struct untuk kapasitas, jumlah kunci, frekuensi dan kunci itu sendiri. Ini kode saya untuk menginisialisasi struct:
htable htable_new(int capacity) {
htable result = emalloc(sizeof *result);
result->capacity = capacity;
result->frequencies = emalloc(capacity * sizeof result->frequencies[0]);
result->keys = emalloc(capacity * sizeof result->keys[0]);
result->frequencies = 0;
result->keys = NULL;
return result;
}
Sekarang, dari pemahaman saya, array char** adalah penunjuk ke array pointer (bertipe char)? Jadi ketika saya mengalokasikan memori, apakah benar menggunakan kunci[0]? Saya berasumsi bahwa ini hanya mewakili ukuran pointer char? Yang mengarah ke pertanyaan saya berikutnya tentang kapan saya benar-benar mengatur kunci dalam array (yang jelas ada di fungsi lain) apakah saya akan mengalokasikan memori ke setiap indeks berdasarkan ukuran string yang saya masukkan sebelum menyimpannya?
i.e. h->keys[index] = emalloc(sizeof(str)
Terima kasih atas jawaban Anda!