Closed ErikGoto closed 3 years ago
Acho que entendi seu problema:
Quando você aloca o espaço pra 10 int num vetor, ele vai de v[0], até v[9], e sua variável ult_num não guarda a ultima posição do vetor, ela guarda um posição depois da última. Então quando você realoca ele com espaço para 11 int, você teria que começar limpando a v[10], entende? Então ali no seu código, você teria que começar zerando v[i-1].
E ali no realloc, o correto seria "realloc(casos, (y+1)*sezeof(int))" se você quer alocar pra caber y+1 inteiros.
Tentei mudar o início para "casos[i-1]", mas ainda não deu certo. Vou pensar mais um pouco, agora que tenho um direcionamento de onde tá o erro acho que vai ser mais fácil. Obrigado!
Boa noite,
Estou com dificuldades em utilizar de forma correta a função realloc() para aumentar o tamanho do vetor que contêm as informações de idade e contágio.
Minha ideia para resolver o lab é usar um vetor casos[]; cada posição se refere a idade, e os valores ao contágio, ou seja, casos[15] = 20 são 20 casos em indivíduos com 15 anos. Estou usando o realloc sempre que a idade excede uma idade pré definida. E sempre que eu uso essa função defino o valor "0" como sendo o conteúdo dos novos endereços.
O problema que eu to enfrentando é que tem vezes que o conteúdo do endereço não é "limpo", e é imprimido coisas como: casos[85] = 18885022
Há outra maneira de realocar memória e ao mesmo tempo limpá-la?