C/Visual C - Como utilizar una variable para dimensionar arrays

 
Vista:

Como utilizar una variable para dimensionar arrays

Publicado por Toñi (20 intervenciones) el 31/07/2001 22:05:56
Tengo un problema tengo que actualizar un programa en Visual C++ y me he encontrado con un problemilla: existen arrays que estan que estan dimensionados con constantes pero ahora esas constantes se tiene que convertir en variable ya que pedimos su valor por teclado a traves de un formulario, pero obviamente cuando intento dimensionar los arrays con variables me da error. Que puedo hacer?
Os pongo un ejemplo para que lo veas claro:

#define NMIX (6)
.
.
.

float mu_occ[NMIX];

Pero ahora resulta que el valor NMIX lo contine la variable Nmix cuyo valor el usuario introduce. Que puedo hacer para poder dimensionar array con el contenido de la variable Nmix y no me de error.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como utilizar una variable para dimensionar arr

Publicado por Gonzalo (17 intervenciones) el 01/08/2001 01:34:58
Eso es imposible en el lenguaje C/C++ pero si en otros lenguajes como Basic, en C/C++ tu tienes dos opciones que son las siguentes:
1.- Definir el array con una constante
2.- Usar la memoria dinamica para dimensionarlo.
En tu caso no tienes mas opcion que escojer la 2nda opcion. Esta consiste en reservar memoria para que contenga a los elementos del array.
Por ejemplo:

#include<malloc.h>
:
:
float *mu_occ;
:
:
mu_occ=(float*)(malloc(sizeof(float)*NMIX));

Para mayor informacion consulta en el capitulo de arrays multidimensionales en www.elrincondelc.com y puedes mandarme un mail.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como utilizar una variable para dimensionar arr

Publicado por Paco (5 intervenciones) el 01/08/2001 23:28:17
en C++ yo usaria new, q no necesita incluir ninguna libreria (creo) y es mas sencillo de utilizar
ej:
int tamano=256;
char *ptr =null;
ptr=new char(tamano);
y listo, ya tienes un array de chars del tamaño q le digas (max 64kbs, creo)
con la salvedad dq cdo quieras liberar la memoria utilizada por ptr debes hacerle un
delete ptr;
aunq, bueno, C++ igual se lo carga cdo la variable sale de alcance, ni idea... en la pag del manual referida a new supongo q diran algo al respecto...
saludOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como utilizar una variable para dimensionar arr

Publicado por Krion (2 intervenciones) el 05/08/2001 20:18:48
Hola, yo tengo un sistema que solo sirve en C++ y que es utilizando clases de la libreria estandard de visual C++.
En esta puedes definir Strings o Vectores de tamanyo indefinido.
Esto se hace así :
1. Definicion de la variable : std::string nombre="inicializacion"

Si quieres arrays de otros elementos, puedes usar
1. Definicion de la variable : std::vector<tipo> nombre(valor)
El "valor" de encima, marca la longitud media ( que te parece a ti) si te la superas no pasa nada, solo que va un poco mas lento. Ahora bien, tienes que irte con cuidado de no sobrepasar el rango quando consultas o sea si tienes 1000 elementos, y quieres mirar el 1003 el programa fallara y puedes perder info del vector.
Si usas C, el sistema malloc és el mejor, yo tambien lo usaba antes.
Con malloc i realloc, puedes hacer lo mismo, y controlas mas pero es mas largo.

Si quieres mas info, consulta la ayuda de Visual C++ o vete a una biblioteca y busca el libro "El lenguaje de programacion C++" Tercera Edicion de Addison Wesley. Autor: Bjarne Stroustrup. (Es muy bueno para aprender clases y objetos.)

Venga espero haber podido ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar