Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/08/2012, 14:18
lucas_max2002
 
Fecha de Ingreso: agosto-2012
Mensajes: 30
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: Acceder un array por direccion

Hola cesar_casla

Gracias por tus observaciones
Cita:
Hola! nose mucho de C++, pero esta forma de declarar:
Red Redes**;
no la conocia. No deberia ser Red **Redes???

Tambien en la funcion usas "id" cuando deberia ser bufer+"index" ....
Tienes razon, me he equivocado al copiar el codigo aqui en el foro. Tambien en lo de id e index. Lo siento.

Cita:
1º Me parece que no es conveniente mezclar funciones como malloc y new. Si estas en C++ usa new
Redes= new Red*[1024];
Esto lo hago asi, para poder llamar el constructor de cada elemento del array de manera independiente. Si trato de hacerlo, con la declaracion que tu me dices, me da unos errores.

Cita:
2º En la funcion vos casteas bufer+"index" a (Red *), pero bufer+index sigue siendo un puntero a puntero a Red por lo tanto el casteo esta demas, y deberias retornar Red**
inline Red** ACCESO_INDIVIDUAL(void* buffer, int index)
{
return (Red**)buffer+id;
}
En este caso retorno solo *, ya que es un elemento del array. El ** es para su conjunto
Cita:
3º Otra observacion es que no le encuentro mucho sentido declarar Redes como puntero a puntero, no es mas conveniente hacer

Red *Redes;

Redes = new Red[1024];

for (int i = 0; i < 1024; i++)
Red[i].Tag= xNumero;
(Puntero)(Puntero) **. Variable cuyos posibles valores son direcciones de otras variables puntero. O al menos asi lo entiendo.
Tambien he probado esta definicion que me dices, y asi no me permite llamar al constructor del objeto.


De todas formas, he probado todos los cambios que me has sugerido, y asi se me genera una serie de errores.

Muchas gracias