Hola Drewermerc gracias por tu respuesta, y asignaba la memoria asi por que pense que por cada vez que se repitiera el ciclo while se agregaria un espacio mas de memoria, tengo una pregunta que hacerte, tu codigo funciona bien pero como veo cada vez que se repite el ciclo While, asignas 20 espacios de memoria tipo int cierto? cuando solo se requiere 1 para el nuevo elemento, en tu linea 28:
Es decir solo quiero que me genere la memoria necesaria.