Array de dimensión "variable"

Hola.

Necesito que un array tenga una dimensión determinada en tiempo de compilación:

int nSlaves = 1; const int TOTAL_NO_OF_PACKETS = nSlaves * 2; Packet packets[TOTAL_NO_OF_PACKETS];

Pero me da un error: error: array bound is not an integer constant before ']' token

Además, si pongo directamente el valor en lugar de TOTAL_NO_OF_PACKETS funciona correctamente.

¿como se soluciona esto?

Para hacerlo de forma dinámica, tendrás que usar malloc o new. El caso es que, aunque hayas definido TOTAL_NO_OF_PACKETS como const, no te lo aceptará.

Si no quieres usar malloc o new, también puedes usar:

define N_SLAVES 1

define TOTAL_NO_OF_PACKETS (N_SLAVES * 2)

Packet packets[TOTAL_NO_OF_PACKETS];

Muchas gracias

Un placer.