【发布时间】:2014-08-24 02:52:31
【问题描述】:
我正在创建一个哈希表。我正在为容量、键数、频率和键本身使用结构。这是我初始化结构的代码:
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;
}
现在,根据我的理解,char** 数组是指向指针数组(char 类型)的指针?那么当我分配内存时,使用keys[0]是否正确?我假设这 只代表char指针的大小?这就引出了我的下一个问题,即我什么时候 实际上设置数组中的键(这显然是在另一个函数中)我只是 在存储之前按我输入的字符串的大小为每个索引分配内存?
即h->keys[index] = emalloc(sizeof(str)
感谢您的回答!
【问题讨论】: