• Domingo 15 de Diciembre de 2024, 18:12

Autor Tema:  Crear Vector Sin Saber Tamaño  (Leído 1244 veces)

azvez

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Crear Vector Sin Saber Tamaño
« en: Miércoles 28 de Junio de 2006, 23:10 »
0
Pues eso...
¿Como se podria hacer un vector para almacenar datos que le van entrando uno a uno desde cin (no sabes cuantos van a entrar ni puedes reservar un determinado tamaño de memoria para tu vector)?
Gracias y un saludo.

tonilope

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Crear Vector Sin Saber Tamaño
« Respuesta #1 en: Jueves 29 de Junio de 2006, 00:06 »
0
Con la función malloc() y realloc().

Supongamos que vas a leer números enteros.

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main(int argc, char **argv)
  6. {
  7. int *vector, tamanio=0;
  8.  
  9. //Reservas memoria para 1 entero
  10. vector = (int*)malloc( (tamanio+1)*sizeof(int) );
  11.  
  12. //Mientras no introduzca un cero
  13. do{
  14. printf("\nIntroduce un entero: ");
  15. scanf("%d", &vector[tamanio];
  16.  
  17. //Ampliamos el vector para 1 elemento más
  18. tamanio++;
  19. vector=(int *)realloc(vector, (tamanio+1));
  20.  
  21. }while(entero!=0);
  22.  
  23. //Liberamos la memoria
  24. free(vector);
  25.  
  26. return 0;
  27. }
  28.  
  29.  
  30.  

Salu2 ;)

azvez

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Crear Vector Sin Saber Tamaño
« Respuesta #2 en: Jueves 29 de Junio de 2006, 01:12 »
0
¿No habria una forma más "sencilla" de hacerlo sin usar las funciones malloc o realloc?
Mi problema en concreto es que tengo una clase Polinomio cuya parte privada es :
1º un puntero (lamado coef) de float donde se guardan los coeficientes de un polinomio cuyo grado lo indica la posicion i dentro de ese mismo puntero o vector dinamico
2º un entero que nos indica el tamaño de dicho puntero o vector.

Entonces yo tengo que sobrecargar el operador de entrada de un polinomio desde un flujo, por el cual entraran grado y coeficiente, grado y coeficiente... asi un indeterminado numero de veces.
Y esa es mi duda, como ir almacenando en coef los coeficientes y en sus respectivas "casillas" dependiendo del grado.
Gracias de nuevo y un saludo.