Já li diversas coisas a respeito de Alocação Dinâmica com realloc e mesmo assim não consigo entender o porque meu código não estar dando certo. O meu objetivo fazer uma alocação dinâmica de um vetor com a relloc. Eu aloquei ele no inicio do código e a medida que preciso de mais espaço usei um laço (FOR) para ir alocando cada bloco.
O programa é o seguinte: "Leia um número positivo do usuário, então, calcule e imprima a sequencia de Fibonacci até o primeiro número superior lido. Exemplo: se o usuário informou o número 30, a sequência a ser impressa será 0 0 1 2 3 4 8 13 21 34.
O meu código funciona com números menores. Por exemplo, quando digito "10", ele vai até o 13. Tudo Ok.
Pergunta
renan_j
Boa tarde, pessoal!
Já li diversas coisas a respeito de Alocação Dinâmica com realloc e mesmo assim não consigo entender o porque meu código não estar dando certo. O meu objetivo fazer uma alocação dinâmica de um vetor com a relloc. Eu aloquei ele no inicio do código e a medida que preciso de mais espaço usei um laço (FOR) para ir alocando cada bloco.
O programa é o seguinte: "Leia um número positivo do usuário, então, calcule e imprima a sequencia de Fibonacci até o primeiro número superior lido. Exemplo: se o usuário informou o número 30, a sequência a ser impressa será 0 0 1 2 3 4 8 13 21 34.
O meu código funciona com números menores. Por exemplo, quando digito "10", ele vai até o 13. Tudo Ok.
MacBook-Pro-de-Renan:Lista_3 renan$ ./PD_L_3_44.out
Digite o n: 10
0, 1,
1,2,3,5,8,13,
Mas quando digito "30", ele quebra com a seguinte mensagem:
MacBook-Pro-de-Renan:Lista_3 renan$ ./PD_L_3_44.out
Digite o n: 30
0, 1,
PD_L_3_44.out(2696,0x7fff782be000) malloc: *** error for object 0x7fbada401390: pointer being realloc'd was not allocated
*** set a breakpoint in malloc_error_break to debug
1,2,3,5,8,13,21,Abort trap: 6
Alguém consegue me ajudar o porque dá esse problema?
Muito obrigado!!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.