You can still assign to the variables in the loop all you want. That has nothing to do with memory, as far as your concerned. Unless you're talking about resizing a dynamically allocated array, in which case you'd declare the pointer outside of the loop, and inside you'd both delete and reallocate it all you want.
Off topic, since I didn't really look at your code the first time around:
Code:
int main(int itemN, int qtyN, char ans, int *b)
main is not a function you can pass arguments to like that... the only time it accepts arguments are if they're through the command line, which these aren't. Like the other variables we've named, you'll want to define those at the beginning of the main function.