Asignación de memoria

Buenas.

Espero no meter mucho la pata con la nomenclatura.

Tengo una estructura maestro-esclavo, donde el número de esclavos puede cambiar en tiempo de ejecución.

Para cada esclavo tengo que definir una serie de objetos para realizar la comunicación.

Estos objetos se "listan" o "estructuran" dentro de un array.

Actualmente lo que hago es crear un array con la dimensión más alta factible y luego usar solamente los posiciones que necesito, pero supongo que no es un método muy elegante.

¿Me podéis comentar un poco el caso?

Gracias.

Creo que has creado un array de estructuras. El único problema es el consumo de memoria, que depende del tamaño del array y a complejidad de la estructura. Así que se me ocurre aluna solución:

  1. Generar varios array progresivamente mientras necesites nuevas estructuras, ejemplo:

Si tu array tiene [1000] posiciones, puedes generar arrays mas pequeños en tiempo de ejecución, por ejemplo de [100] e iteras sobre ellos para que te unifique los arrays como un solo array a la hora de leer y escribir.

  1. Reutilizar posiciones que no vuelvas a necesitar.

Bye!

Y cuando compilas, el compilador no te habla de inestabilidad de memoria posible?
Hay maneras de hacer asignaciones dinámicas.

Habría que ver tu código para evaluar la mejor solución. Como dice surbyte, puedes realizar asignación dinámica de memoria, esto es, ir tomando memoria para crear variables o estructuras a medida que lo necesites, pero no tiene porqué ser la solución ideal, y tal vez la que tienes actualmente sea mejor.