Вы назначаете указатель на ту же область памяти, поэтому будет отображаться последнее введенное значение.
MT - это 501 байт зарезервированной памяти, вы помещаете туда введенное пользователем значение, а затем назначаете адрес MTхеш-таблица [i].Затем вы помещаете новое значение в те же 501 байт, перезаписывая предыдущее.
Например, предположим, что MT [501] имеет начальный физический адрес 1000, поэтому каждый элемент hashTable будет равен 1000, а точката же память.Вот почему у вас напечатано то же значение.
Кроме того, поскольку вы объявили переменную как "auto", она будет размещена в стеке.После окончания выполнения блока указатель стека будет скорректирован, чтобы эта память могла быть повторно использована при следующем выделении.У вас нет других выделений между концом блока и вашим отпечатком, поэтому он не был перезаписан.В противном случае он будет перезаписан при следующем выделении памяти.