Определение массива глобально, но его параметры будут доступны позже - PullRequest
0 голосов
/ 06 мая 2018

Я хочу использовать массив из функции 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 Ответ

0 голосов
/ 06 мая 2018

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

...