SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: carvann en Viernes 10 de Abril de 2009, 20:45

Título: Error con arreglo de char (c++)
Publicado por: carvann en Viernes 10 de Abril de 2009, 20:45
este método trata de leer un archivo y la primera linea del archivo es un numero el cual no se de que tamaño es, por lo cual no inicializo
la variable mystdchararray con un valor fijo, sin embargo esto me genera un error  y no se que podria hacer para que no me salga los siguientes errores:

void lecturaArchivo(String ^rRuta)
{
   StreamReader ^in = gcnew StreamReader(File::OpenRead(rRuta));
   String ^linea = in->ReadLine();
   array<Char>^delimiter = linea->ToCharArray();

   char mystdchararray[delimiter->Length];      
                                                                          //error C2057: se esperaba una expresión constante  
                                                                            //error C2466: no se puede asignar una matriz de tamaño constante 0
                                                                             //error C2133: 'mystdchararray' : tamaño desconocido  
 

   for (int i= 0; i < delimiter->Length; i++)
   {        
      mystdchararray = delimiter;
   };

   numeroMaterias = atoi(mystdchararray);

   while(!(in->EndOfStream))
   {
      linea = in->ReadLine();
   Console::WriteLine(linea);
   
   }

   in->Close();
   Console::ReadLine();
}
Título: Re: Error con arreglo de char (c++)
Publicado por: m0skit0 en Lunes 13 de Abril de 2009, 09:43
Cita de: "carvann"
char mystdchararray[delimiter->Length];
No puedes declarar el tamaño de un vector con una variable. El compilador necesita algo fijo para reservar la memoria, si no, usa memoria dinámica (new).
Título: Re: Error con arreglo de char (c++)
Publicado por: fachamix en Lunes 13 de Abril de 2009, 16:58
vas a tener que usar estructuas de datos dinamicas, usando NEW y DELETE