Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Reserva memoria "3D"

Estas en el tema de Reserva memoria "3D" en el foro de C/C++ en Foros del Web. Hola foreros, tengo un pequeño problema. Estoy realizando un programa y necesito realizar una reserva de memoria para un elemento de volumen, por lo que ...
  #1 (permalink)  
Antiguo 27/05/2008, 10:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Reserva memoria "3D"

Hola foreros, tengo un pequeño problema. Estoy realizando un programa y necesito realizar una reserva de memoria para un elemento de volumen, por lo que realizo algo de este estilo:

//Reservamos memoria para esfera_aux
esfera_aux=(int ***)malloc(sizeof(int)*X);
for (i=0; i<X; i++){
esfera_aux[i] = (int **)malloc(sizeof(int)*Y);
for(j=0;j<Y;j++)
esfera_aux[i][j] =(int *)malloc(sizeof(int)*Z);
}

Se que de esta forma funciona (100% probado), pero necesito que la gestion de la memoria sea lo mas eficiente posible y no se si este metodo lo es. Tambien he visto por ahi que existe la posibilidad de trabajar con estructuras de matrices con la GNU Scientist Library. ¿Que os parece?¿Que me recomendais?¿Como lo hariais vosotros?
Gracias.
  #2 (permalink)  
Antiguo 28/05/2008, 12:48
 
Fecha de Ingreso: mayo-2008
Ubicación: Caracas
Mensajes: 35
Antigüedad: 16 años
Puntos: 1
Respuesta: Reserva memoria "3D"

Hola, yo tengo que trabajar con arreglos en 3d donde debo usar matrices [5000000][3], la forma de hacerlo fue con la libreria vector.h. es posible que te sirva. pero no se como usar los vectores como argumentos para otras funciones.

Si lo descubres porfa dimelo. Y si sabes de graficar en 3d a partir de un conjunto de datos, tambien te lo agradecere.

PD: los vectores los declaras de la siguiente manera:
vector<tipo de dato> vector(i,j);


suerte
  #3 (permalink)  
Antiguo 29/05/2008, 06:00
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Reserva memoria "3D"

Investigando por ahi he visto que dicen que es mejor utilizar elementos ya hechos como los que os comentaba de la libreria GSL en lugar de con los bucles para reservar la memoria. Necesito que alguien que la haya utilizado me diga como se puede reservar memovia en 3D ya que en 2D seria muy sencillo:

gsl_matrix *reserva2D(int Xm, int Ym){
gsl_matrix *m = gsl_matrix_alloc (Xm,Ym);
return(m);
}

¿Podeis ayudarme?
Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.