• Miércoles 6 de Noviembre de 2024, 19:37

Autor Tema:  Problemas con longitud inicial de array  (Leído 1483 veces)

simple_user

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problemas con longitud inicial de array
« en: Jueves 2 de Octubre de 2008, 17:11 »
0
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?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problemas con longitud inicial de array
« Respuesta #1 en: Jueves 2 de Octubre de 2008, 17:27 »
0
Usa memoria dinamica (malloc/free en C, new/delete en C++).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Problemas con longitud inicial de array
« Respuesta #2 en: Jueves 2 de Octubre de 2008, 17:33 »
0
Cita de: "simple_user"
Buenas!
La pregunta es, como puedo hacer para que mi array tenga la longitud de una variable?
con punteros

simple_user

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problemas con longitud inicial de array
« Respuesta #3 en: Jueves 2 de Octubre de 2008, 17:35 »
0
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 ;)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problemas con longitud inicial de array
« Respuesta #4 en: Jueves 2 de Octubre de 2008, 17:37 »
0
Significa: puntero a.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

simple_user

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problemas con longitud inicial de array
« Respuesta #5 en: Jueves 2 de Octubre de 2008, 17:54 »
0
Gracias ;)
Voy a ponerme a estudiar punteros a fondo, porque veo que es algo bastante importante en el c/c++.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Problemas con longitud inicial de array
« Respuesta #6 en: Viernes 3 de Octubre de 2008, 08:51 »
0
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