iagoac / mc202

Disciplina MC202 - Estruturas de Dados
GNU General Public License v3.0
17 stars 13 forks source link

Dúvida sobre o erro "Realloc () invalid next size" #38

Closed pedro-ferraz closed 3 years ago

pedro-ferraz commented 4 years ago

Boa noite! Estou com uma dúvida em relação à função realloc em meu código (linha 24 abaixo) na qual ele aloca o dobro da memória anterior, caso seja necessário. Meu código está funcionando corretamente até um limite máximo de 14 linhas de dados de entrada (portanto 42 elementos no vetor). Caso o usuário digite mais uma linha, o programa para durante o scanf e retorna o erro "Realloc () invalid next size". Alguém poderia me auxiliar, por favor? Obs: Caso eu defina o realloc para o triplo de memória anterior, não ocorre mais esse problema, mesmo com os últimos testes do susy. Obrigado! Captura de tela de 2020-05-02 17-48-41 Obs 2: i inicia com valor 0 e j inicia com valor 4.

Tomikins commented 4 years ago

Creio que tenha a ver com a ordem das operações pra calcular o espaço alocado, deve estar alocando um espaço que não é múltiplo de 4. Por exemplo, ali se i =1, o resultado da operação é 21. Coloque alguns parênteses pra ordenar as operações e deve dar tudo certo

On Sat, May 2, 2020, 18:10 pedro-ferraz notifications@github.com wrote:

Boa noite! Estou com uma dúvida em relação à função realloc em meu código (linha 24 abaixo) na qual ele aloca o dobro da memória anterior, caso seja necessário. Meu código está funcionando corretamente até um limite máximo de 14 linhas de dados de entrada (portanto 42 elementos no vetor). Caso o usuário digite mais uma linha, o programa para durante o scanf e retorna o erro "Realloc () invalid next size". Alguém poderia me auxiliar, por favor? Obs: Caso eu defina o realloc para o triplo de memória anterior, não ocorre mais esse problema, mesmo com os últimos testes do susy. Obrigado! [image: Captura de tela de 2020-05-02 17-48-41] https://user-images.githubusercontent.com/63692033/80891899-64f8c300-8c9d-11ea-82a1-ca7a5bbe1f96.png Obs 2: i inicia com valor 0 e j inicia com valor 4.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/iagoac/mc202/issues/38, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMXPEVZVSUNVSVIBRGX4VATRPSD45ANCNFSM4MX225ZQ .

iagoac commented 4 years ago

@pedro-ferraz acredito que a sugestão de @Tomikins faça sentido. Este erro que você reportou acontece muito quando você está realocando um espaço de memória inferior ao espaço de memória já reservado anteriormente para o vetor.

Organize sua expressão com mais cuidado que provavelmente vai dar certo :)