Исключение при записи данных в массив, состоящий из списков

170
22 мая 2019, 07:00

Разрабатываю программу, которая будет искать нужный элемент при помощи хэш-таблицы. Хэш-таблицу организую путём создания массива, состоящего из ЛОС(Линейных односвязных списков) Объявление структуры:

struct LOS {
    int inf;
    LOS* next;
};

Код самой программы достаточно прост в переменную sourcelen пишу длину числового массива, в котором будут находиться исходные данные, в x - буду записывать элементы массива(если длина массива будет менее 5), если более, то массив заполнится при помощи датчика псевдослучайных чисел. Далее при помощи функции Maximum найду наибольшее значение элемента в массиве hasharray. После этого вычисляю размер массива, состоящего из ЛОС. и с использование hashFunc заполню массив, состоящий из ЛОС.

int main()
{    
    setlocale(LC_ALL, "RUS");
    int sourcelen = 0;;
    int x = 0;
    int m;
    cout << "Введите размер массива = ";
    sourcelen = control(sourcelen);
    int* hasharray = new int[sourcelen];
    if (sourcelen > 5) {
        for (int i = 0; i < sourcelen; i++) {
            srand(time(0));
            hasharray[i] = rand();
        }
    }
    else {
        cout << "Введите элементы массива" << endl;
        for (int i = 0; i < sourcelen; i++) {
            x = control(x);
            hasharray[i] = x;
        }
    }
    m = Maximum(hasharray, sourcelen) /2;
    int k = 0;
    k = (int)(sourcelen / m);
    if (k < 9)
        k == 9;
    LOS** list = new LOS*[k];
    for (int i = 0; i < k; i++) {
        list[i]->next = NULL;
    }
    hashFunc(list, hasharray, sourcelen, m);
    cout << "Вывод" << endl;
    for (int i = 0; i < k; i++) {
        while (list[i]->next) {
            cout << list[i]->inf << " ";
            list[i] = list[i]->next;
        }
    }

Проблема возникает в функции hashFunc

void hashFunc(LOS ** list, int *i, int size, int m) {
    for (int j = 0; j < size; j++) {
        int t = (i[j] % m);
        list[t]->inf = i[j];
        list[t] = list[t]->next;
        list[t]->next = NULL;
    }
}

Выбрасывает исключение на строке

list[t]->inf = i[j];

Ну могу понять что я делаю не так?

READ ALSO
Помогите в реализации классов

Помогите в реализации классов

Мне по заданию надо реализовать:

124
Проблемы в понимании работы Spring&#39;a

Проблемы в понимании работы Spring'a

недавно смотрел видео по созданию веб-приложения с помощью Spring MVC и Freemarker и пытался понять что и к чемуНа 1:20:00 https://www

148
java.net.SocketException: Connection reset by peer. In custom twitch bot

java.net.SocketException: Connection reset by peer. In custom twitch bot

Я создал кастомного твич бота с использованием библиотеки cavariuxВызвал по очереди методы в main классе

148
Java в чем смысл инструментов для сборки [закрыт]

Java в чем смысл инструментов для сборки [закрыт]

Я как понял, если я хочу скомпилировать код, в котором используются различные сторонние библиотеки, то мне необходимо будет писать кучу доппараметров,...

135