Hola! nose mucho de C++, pero esta forma de declarar:
no la conocia. No deberia ser Red **Redes???
Tambien en la funcion usas "id" cuando deberia ser bufer+"index" ....
Sacando esos detalles, te marco algunas observaciones:
1º Me parece que no es conveniente mezclar funciones como malloc y new. Si estas en C++ usa new
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**
Código C++:
Ver originalinline Red** ACCESO_INDIVIDUAL(void* buffer, int index)
{
return (Red**)buffer+id;
}
3º Otra observacion es que no le encuentro mucho sentido declarar Redes como puntero a puntero, no es mas conveniente hacer
Código C++:
Ver originalRed *Redes;
Redes = new Red[1024];
for (int i = 0; i < 1024; i++)
Red[i].Tag= xNumero;
Saludos