Redimensionando um char [x] para char [y] em tempo de execução

OK, espero explicar isso corretamente. Eu tenho uma estrutura:

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

Agora me deparo com um problema. Na maioria das vezes, o MyData.Data está OK com 256, mas em alguns casos eu preciso expandir a quantidade de caracteres que ele pode armazenar em tamanhos diferentes. Eu não posso usar um ponteiro. Existe alguma maneira de redimensionar dados em tempo de execução? Como? Código é apreciado.

obrigado

EDITAR:

Embora eu seja muito grato por todos os comentários, o "talvez tente isso ..." ou "faça aquilo", ou "o que você é dong está errado ..." os comentários não estão ajudando. código é a ajuda aqui. Por favor, se você souber a resposta postar o código.

e:

1- não pode usar ponteiros. por favor, não tente descobrir o porquê, eu simplesmente não posso 2- a estrutura está sendo injetada na memória de outro programa. é por isso. sem ponteiros.

desculpe por ser um pouco áspero aqui, mas eu fiz a pergunta aqui porque eu já tentei todas as diferentes abordagens que pensei que poderia funcionar. Mais uma vez, estou procurando por código. Neste momento não estou interessado em "pode ​​funcionar ..." ou "você considerou isso ..."

obrigado e minhas desculpas novamente

EDIT 2

Por que isso foi definido como respondido?

questionAnswers(11)

yourAnswerToTheQuestion