Bom dia,
Estou com com a seguinte questão para resolver.
Tenho uma struct X que recebe dados de uma stream (que eram de uma struct igual) e os coloca de volta em um arquivo, salvando a atual struct.
Preciso alterar o tamanho de uma variável da struct, porém quando faço isso os dados retornam totalmente errados (pois foram salvos com o tamanho da anterior). Não tenho a opção de simplesmente alterar o tamanho e limpar todos os registros pois já existem dados salvos no dispositivo que enviará os dados.
Vamos tentar explicar novamente pois não sei se ficou claro o anterior. Tenho isso:
typedef struct { int32 id; int8 descricao[16 + 1]; int32 valor1; int32 valor2; } stt1;
Que já recebe normalmente os dados normalmente de um registro salvo em um arquivo, e preciso que se torne isso:
typedef struct { int32 id; int8 descricao[32 + 1]; int32 valor1; int32 valor2; } stt1;
Porém, quando simplesmente altero o tamanho da descrição, ele os dados de valor1 e valor2 vem errados (pra ser mais especifico, no inspect element olhando cada espaço de memória, eles aparecen dentro da descrição). Não tenho a opção de simplesmente deletar todos os registros salvos e começar do zero.
Alguém tem alguma sugestão?