배열의 각 인덱스에 대해 키와 정보가있는 배열이 있습니다.배열 구조가 올바르게 작동하지 않습니다.
이것은
table_t *table_construct (int table_size, int probe_type)
{
int i;
table_t *hash;
if(table_size < 1) return NULL;
hash = malloc(sizeof(table_t));
hash->table = malloc(sizeof(list_t*) * table_size);
for(i=0; i < table_size - 1; i++)
{
hash->table[i] = NULL;
//hash->table[i]->next = NULL;
}
hash->size = table_size;
hash->probing_type = probe_type;
return hash;
}
그래서 나는 list_t과 table_t 구조를 가지고 배열을 작성합니다.
hash->table[item]->K = K;
그것은 내 코드의이 부분에서 볼 수있다 : : 나는 그것을 GDB 때
int dec, item, hold;
item = hashing(hash,K);
hold = item;
if(hash->table[item] == NULL)
{
hash->table[item]->K = K;
hash->table[item]->I = I;
return 0;
}
, K이 숫자 I가 제대로 작동하지 않습니다 내 코드에 다음 줄이있다.
그래서 여기서 일어나는 일은 항목으로 색인이 생성 된 표가 있습니다. 그런 다음 색인의 키에 K를 추가합니다. 이 라인이 내 프로그램의 어느 곳에서나 나타날 때 나는 seg fault를 얻는다.
내가 여기서 잘못한 것을 볼 수 있습니까?
음, 'table' 배열에 메모리를 할당 했습니까? 그리고'table' 엘리먼트에서 가리킨 각각의 개별'list_t' 객체에 메모리를 할당 했습니까? 당신이 어떻게하는지 우리에게 보여줘야 해. – AnT
'table'에 항목을 할당하는 방법을 모르면 도움이 될 것입니다 ... – John3136
지금 내 생성 기능을 추가하십시오. – user081608