elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tamaño de array através de variable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tamaño de array através de variable  (Leído 2,485 veces)
eleon

Desconectado Desconectado

Mensajes: 99


Ver Perfil
Tamaño de array através de variable
« en: 19 Julio 2012, 23:31 pm »

Buenas:

Quería saber si hay alguna forma de definir el tamaño de un array bidimensional mediante variables e inicializarlo. Ejemplo:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6.  
  7.  
  8.    int columna = 3;
  9.    int linea = 3;
  10.    int array[columna][linea] = {5, 1, 2, 5, 1, 2, 5, 1, 2};
  11.    return 0;
  12. }
  13.  

Esto da el siguiente error: error: variable-sized object 'array' may not be initialized|

Sin embargo si no lo inicializo el mismo código funciona bien:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6.  
  7.  
  8.    int columna = 3;
  9.    int linea = 3;
  10.    int array[columna][linea];
  11.    return 0;
  12. }
  13.  

O si lo inicializo pero defino el tamaño del array mediante valores numéricos y no variables también funciona bien:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6.    int array[3][3] = {5, 1, 2, 5, 1, 2, 5, 1, 2};
  7.    return 0;
  8. }
  9.  

Entiendo que si el tamaño lo definimos con variables no es lógico que lo inicialicemos porque al variar el valor de la variable y definir de nuevo el array pueden no caber todos los elementos. Pero quizá haya algún "truquillo" puesto que la idea es aumentar el tamaño de los array (no en tiempo de ejecución logicamente) y eso no supondría ningún problema al compilar.

¿Alguna idea para que funcione el primer ejemplo?. Gracias.


« Última modificación: 19 Julio 2012, 23:36 pm por eleon » En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Tamaño de array através de variable
« Respuesta #1 en: 19 Julio 2012, 23:36 pm »

Mmm... Creo que no se puede. Lo que más se le aproxima es hacer una definición, quedando así:

Código
  1. #include <iostream>
  2. #define COLUMNA 3
  3. #define LINEA 3
  4.  
  5. using namespace std;
  6.  
  7. int main ()
  8. {
  9.    int array[COLUMNA][LINEA] = {5, 1, 2, 5, 1, 2, 5, 1, 2};
  10.    return 0;
  11. }
  12.  

Saludos!


En línea

eleon

Desconectado Desconectado

Mensajes: 99


Ver Perfil
Re: Tamaño de array através de variable
« Respuesta #2 en: 19 Julio 2012, 23:50 pm »

Buena idea, gracias por la sugerencia.

Saludos.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Tamaño de array através de variable
« Respuesta #3 en: 20 Julio 2012, 01:48 am »

En C++ (C++98, habrá que revisar el nuevo estándar) no puedes utilizar variables para indicar el numero de elementos en un array, deben ser constantes.

Y para indicar el valor inicial de cada elemento en un array utilizas una lista de valores delimitada con llaves. Eso aplica de forma recursiva si cada elemento (como es tu caso) también es un array:
Código
  1. const int linea = 3
  2. const int columna = 3;
  3.  
  4. // ...
  5.  
  6. int mat[linea][columna] = {
  7.   {5, 1, 2},
  8.   {5, 1, 2},
  9.   {5, 1, 2}
  10. };

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
obtener el tamaño de las distintas dimenciones de un array
Programación Visual Basic
<[(x)]> 5 3,521 Último mensaje 11 Febrero 2009, 03:03 am
por <[(x)]>
Ayuda - Ajustar tamaño array - variable
Programación C/C++
Miky Gonzalez 4 2,550 Último mensaje 4 Julio 2012, 13:19 pm
por Miky Gonzalez
Como saber el tamaño de un array de tipo int
Programación C/C++
Blaster 4 48,906 Último mensaje 8 Noviembre 2012, 19:31 pm
por Blaster
Obtener tamaño de array dinamico
Programación C/C++
erest0r 2 2,068 Último mensaje 1 Octubre 2013, 02:22 am
por erest0r
AYUDA URGENTE TAMANO ARRAY
Foro Libre
pindonga123 1 1,463 Último mensaje 4 Noviembre 2013, 03:39 am
por @synthesize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines