Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con Vectores

Estas en el tema de Problema con Vectores en el foro de C/C++ en Foros del Web. buenas, soy nuevo en el foro ^^ termine consultando por que no encontré una respuesta acorde a mi necesidad en la web, quizá alguien de ...
  #1 (permalink)  
Antiguo 25/09/2014, 15:40
 
Fecha de Ingreso: septiembre-2014
Mensajes: 1
Antigüedad: 10 años, 2 meses
Puntos: 0
Problema con Vectores

buenas, soy nuevo en el foro ^^ termine consultando por que no encontré una respuesta acorde a mi necesidad en la web, quizá alguien de uds me puede sacar la duda... el tema es el sig...

Tengo este codigo...

#include <iostream>

using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {

int n;
cout<<"Ingrese cantidad de elementos del vector n"<<endl;
cin >> n;
int Vector[n];

return 0;
}


bien... el tema con esto es que en el dev c++ anda joya, pero en la facultad me exigen que trabaje con Zinjai y en este ultimo este programa da este error:

Guia7Ejercicio2.cpp:10:14: error : ISO C++ forbids variable length array 'Vector' [-Wvla]

Le agradeceria que me den una mano y me expliquen por que pasa y si puede solucionarce... desde ya muchas gracias ^^
  #2 (permalink)  
Antiguo 25/09/2014, 19:42
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 4 meses
Puntos: 22
Respuesta: Problema con Vectores

Hola Ykin.

Intenta de este modo:
Código C++:
Ver original
  1. ...
  2. {
  3.   int n;
  4.  
  5.   cout << "Ingrese cantidad de elementos del vector n" << endl;
  6.   cin  >> n;
  7.  
  8.   int* Vector = new int[n];
  9.   ...
  10.   delete [] Vector;
  11.   return 0;
  12. }

Saludos.
  #3 (permalink)  
Antiguo 25/09/2014, 21:59
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes
Puntos: 38
Respuesta: Problema con Vectores

Pero puedes probar un truco poco ortodoxo y no garantizo que funcione XDDDD
Código C++:
Ver original
  1. const int n = 1;
  2. int main(){
  3.    int v;
  4.    cout << "Ingrese el valor de las dimensiones del vector "<< endl;
  5.    cin >> v;
  6.    int vector[n + v]; //le estamos pasando un constante ¿no? aun que despues le sumamos una variable jajajXDDDD
  7. //...
  8.    return 0;
  9. }
El problema es que según el estándar C++ n no debe ser una variable sino una constante, por lo tanto no deberíamos pedir tal valor.
Cuando creamos la variable de forma "normal" trabajamos con la pila y es muy limitada.
Puedes probar la solución que te indico ecfisa que se trata de trabajar con el heap o tambien llamado free storage.
El heap es una parte de la memoria a la que puedes reservar grandes cantidades de la misma. El problema de trabajar con el heap es que no llamamos las variables por sus nombres como en el caso de la pila, sino que usamos punteros.
En la facultad se exige que trabajes con determinados programas y a menudo no son muy buenos dejandote con un mal sabor de boca.
Si estuvieras trabajando por tu cuenta te diría que aprendieras a usar los vectores lo antes que pueda, pero no te va a ser posible ya que debes aprender primero a usar tablas y matrices.
Con los vectores(STL) puedes variar el tamaño.
Es el compilador o el IDE que te esta arrojando esos errores según el estándar por que así cree que esta haciendo el correcto. Dev c++ se lo pasa eso por el forro o puede que use un estándar mas reciente... realmente desconozco la razón de ser así.
Codeblocks no tirar error ni avisos.

prueba la solucion de arriba pero te lo repito... es muy poco ortodoxo si te llega a funcionar jeje

Última edición por vangodp; 25/09/2014 a las 22:08

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.