Определение массива глобально, но его параметры будут доступны позже

Я хочу использовать массив из функции HashTableInit в printHash, Итак, я определил это глобально. Но параметры массива присутствуют в функции HashTableInit, Я не хочу брать массив, возвращая функцию, потому что для использования return мне нужно будет вызвать всю функцию в printHashи это нарушит весь мой код.

void HashTableInit(int TableSize, int Key) {
//Create a space for HashTable as given in variable TableSize
struct hashTableNode * HT[TableSize];
for (int i = 0; i < TableSize; i++) {
    HT[i] = (struct hashTableNode*) malloc(sizeof (struct hashTableNode));
    HT[i] ->Key = 0;
    HT[i] ->next = NULL;
}

Здесь TableSize будет доступен после выполнения этой функции. Но как я могу определить массив глобально с параметрами.

1 ответ

Если это не указатель, вы можете объявить переменную со значениями глобально. Но в вашем случае это переменная указателя. Вы должны вручную назначить адрес перед назначением значения. Поэтому рекомендуется создать функцию для распределения значений по переменным-указателям. Но вы можете назначить массив и переменную для хранения размера массива глобально. Я надеюсь, что это поможет вам.

Другие вопросы по тегам