[C con Clase] Problemas con asignaciond el tamaño de un vector

Steven Richard Davidson stevenrichard.davidson en gmail.com
Jue Nov 25 02:16:21 CET 2010


Hola Pablo,

2010/11/25 Pablo PEC <pablo06_cabj_ec en hotmail.com>

> Hola estoy haciendo un programa donde debo ingresar hasta 100 valores
> dentro de un vector.
> Mi problema surgue cuando pido ingresar la cantidad de valores que se van a
> ingresar y lo guardo en una variable. Luego a esa variable la asigno como
> tamaño del vector.
> El compilador me indica un error que dice:  ISO C++ forbids variable length
> array 'vector'
>

Como te indica el compilador, esto es un error. No puedes cambiar el tamaño
máximo de elementos de un array (o vector). De hecho, el compilador DEBE
conocer la cantidad exacta de elementos y por tanto, no puede haber
variables.

Si quieres tener cantidades variables de elementos, entonces sugiero usar
memoria dinámicamente adjudicada. Por ejemplo,

float *pVector;
...
pVector = new float[tama];
for( x=0; x<tama; x++ )
{
  cout << "ingrese numero";
  cin >> pVector[x];
}
...
delete[] pVector;

Recuerda que debes liberar la memoria que adjudicas dinámicamente cuando ya
no la necesites. Típicamente, liberamos esta memoria justo antes de terminar
el programa.


Otra solución es crear una cantidad máxima de elementos: 100, por ejemplo, y
luego mantener una cantidad actual de elementos válidos. Por ejemplo,

float vector[100];
int nCantActual;
...
 for( x=0; x<nCantActual; x++ )
{
  cout << "ingrese numero";
  cin >> vector[x];
}


Espero que esto te ayude.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101125/b0d19998/attachment.html>


Más información sobre la lista de distribución Cconclase