SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: simple_user en Jueves 2 de Octubre de 2008, 17:11

Título: Problemas con longitud inicial de array
Publicado por: simple_user en Jueves 2 de Octubre de 2008, 17:11
Buenas!

Soy novato con c/c++ y a lo mejor mi duda es muy basica, pero no consigo asignar una longitud a un array.
Lo hago de la siguiente forma:

Código: C++
  1.  
  2. int main()
  3. {
  4.   int longitud = 10;
  5.   char foo[longitud];
  6.   ...
  7. }
  8.  
  9.  

A la hora de hacer esto peta.. y nose porque. Sin embargo si en vez de poner el nombre de la variable entre [ ] pongo directamente el numero 10 va bien. Asi:
Código: C++
  1.  
  2. int main()
  3. {
  4.    char foo[10];   //va bien!
  5.    ...
  6. }
  7.  
  8.  


La pregunta es, como puedo hacer para que mi array tenga la longitud de una variable?
Título: Re: Problemas con longitud inicial de array
Publicado por: Eternal Idol en Jueves 2 de Octubre de 2008, 17:27
Usa memoria dinamica (malloc/free en C, new/delete en C++).
Título: Re: Problemas con longitud inicial de array
Publicado por: shakka en Jueves 2 de Octubre de 2008, 17:33
Cita de: "simple_user"
Buenas!
La pregunta es, como puedo hacer para que mi array tenga la longitud de una variable?
con punteros
Título: Re: Problemas con longitud inicial de array
Publicado por: simple_user en Jueves 2 de Octubre de 2008, 17:35
Gracias por la ayuda!
Ya lo he conseguido, pero tengo otra duda.

Para usar el new he hecho lo siguiente:

Código: C++
  1.  
  2. int max=10;
  3. char* foo = new char[max];
  4.  
  5.  

Y funciona, pero no entiendo porque he tenido que usar el "char*". Que significa el * ?

Gracias de nuevo ;)
Título: Re: Problemas con longitud inicial de array
Publicado por: Eternal Idol en Jueves 2 de Octubre de 2008, 17:37
Significa: puntero a.
Título: Re: Problemas con longitud inicial de array
Publicado por: simple_user en Jueves 2 de Octubre de 2008, 17:54
Gracias ;)
Voy a ponerme a estudiar punteros a fondo, porque veo que es algo bastante importante en el c/c++.
Título: Re: Problemas con longitud inicial de array
Publicado por: m0skit0 en Viernes 3 de Octubre de 2008, 08:51
Cita de: "simple_user"
es algo bastante importante en el c/c++

En C/C++ no, en programación en general. Y no sólo "bastante importante", es FUNDAMENTAL