Cambiar el tamaño de un char [x] a char [y] en tiempo de ejecución

OK, espero que explique esto correctamente. Tengo una estructura

typedef struct _MyData
{
   char Data[256];
   int  Index;
} MyData;

Ahora, me encuentro con un problema. La mayoría de las veces, MyData.Data está bien con 256, pero en algunos casos necesito expandir la cantidad de caracteres que puede contener a diferentes tamaños. No puedo usar un puntero. ¿Hay alguna manera de cambiar el tamaño de los datos en tiempo de ejecución? ¿Cómo? El código es apreciado.

Gracias

EDITAR:

Si bien estoy muy agradecido por todos los comentarios, los comentarios "tal vez intente esto ..." o "haga eso", o "lo que está haciendo está mal ..." no están ayudando. El código es la ayuda aquí. Por favor, si conoces la respuesta, publica el código.

y:

1- no puede usar punteros. por favor, no intente averiguar por qué, simplemente no puedo. 2. La estructura se está inyectando en la memoria de otro programa. es por eso. sin punteros

Lo siento por ser un poco duro aquí, pero hice la pregunta aquí porque ya probé todos los diferentes enfoques en los que el pensamiento podría funcionar. Una vez más, estoy buscando código. En este momento no me interesa "podría funcionar ..." o "has considerado esto ..."

gracias y mis disculpas de nuevo

Editar 2

¿Por qué se estableció esto como respuesta?

Respuestas a la pregunta(11)

Su respuesta a la pregunta