Я не совсем понимаю, к каким указателям или управлению памятью вы обращаетесь. Тем не менее, это
cin >> a[1000];
неправильно. Массив с 1000
элементами имеет последний действительный индекс как 999
. Вы получаете доступ к массиву за пределами, что вызывает неопределенное поведение. Может случиться что угодно (ну, не совсем, но лучше так об этом думать).
Правильный цикл должен быть («правильный» как в «минимальных изменениях, чтобы избежать уб»):
for(int h = 0;h < g; h++){
cout << " Input number: ";
cin >> a[h];
}
Однако это также вызовет проблемы, когда пользователь вводит число, большее 1000
для g
. Что вы действительно должны использовать, так это std::vector
, который позволяет вам выдвигать элементы сколько угодно, без указания их размера во время компиляции.
PS: Если ваш код работает без указателей или ручного управления памятью, то нет причин добавлять его. Указатели и (ручное) управление памятью сложны, обучение тому, как с ними обращаться, в основном сводится к тому, как их избежать.