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