現在正在處理一個相當基本的問題,似乎無法讓我理解爲什麼我是seg錯誤!如果這看起來非常簡單,那麼對於C編程/分配內存來說還是相當新的。將內存分配給結構中的字符串
我相信我分配內存錯了,我只是不知道如何。任何幫助都很棒!
功能emalloc正好與空校驗不同文件中的malloc函數:
void *emalloc(size_t s) {
void *result = malloc(s);
if(NULL == result) {
fprintf(stderr, "Memory Allocation Failure!");
exit(EXIT_FAILURE);
}
return result;
}
struct htablerec {
int capacity;
int num_keys;
char **keys;
int *frequency;
};
htable htable_new(int capacity){
int i;
htable htab = emalloc(sizeof *htab);
htab->capacity = capacity;
htab->num_keys = 0;
htab->frequency = emalloc(capacity * sizeof htab->frequency[0]);
for(i=0; i<capacity; i++){
htab->keys[i] = emalloc((WORD_LEN + 1) * sizeof (char));
}
for(i=0;i< capacity;i++){
htab->frequency[i]= 0;
htab->keys[i] = NULL;
}
return htab;
}
從不完整的片段看起來好像您在迭代'htab->鍵之前沒有爲'htab-> keys'分配任何內存' –
這是PHP的任何機會 - emalloc? – akshayk07
什麼是'emalloc'? –