Variável altera valor sem motivo aparente

debian
#1

Tava escrevendo um código em C pra resolver o problema sugerido no post do Facebook: https://www.facebook.com/groups/414761988665865/permalink/1390954547713266/

Alguém pode me explicar porque alterou o valor das primeiras posições da matriz?

Segue o código: https://pastebin.com/VUadU3F3

0 Likes

#3

Brother, porque você inicializa os produtos com 396 itens?
Fiz o teste aqui, e inicializando em 400 (20x20) itens o erro não acontece.

2019-03-20_08-13

2 Likes

#4

@douglas.comim, de 0 a 401(esta assim no FOR), não tem 402 números?? desculpe a ignorância, caso estiver dizendo alguma errado, sou bem leigo em C…

0 Likes

#5

O que estava ocorrendo?
Erro de acesso de memória na lógica de execução do produto, ao chegar
com b em 17 como primeiro multiplicador, o código seguia normalmente até o 20 e saia do segundo loop, porém a variável cont estava em 3, ao rodar a = 1 e b = 0 incrementava-se cont e então era reduzido 3 de b indo para b = -3 logo acarretou em acesso inválido de memória.

Segue abaixo algumas alterações que eu fiz, e a diferença entre o seu código e o que eu alterei:

1 Like

#6

Foi exatamente esse o erro. O certo é iniciar com 397 posições, mas eu fiz confusão achando que na declaração da array o ‘0’ contava como uma.

0 Likes

#7

Valeu pelas dicas, amigo!

0 Likes