Suspeito que sizeof(Arv) não seja a mesma coisa que sizeof(struct arv).
Tente substituir a linha 14 por:
tnaires
Bah, acho que me enganei. Olhei muito rápido seu código e deduzi que você tinha declarado Arv como um ponteiro para a estrutura arv.
tnaires
Bom, outra coisa que você pode tentar é realizar uma coerção no momento da alocação de memória:
C
cake
Atente para:
jamirdeajr
O strcpy copia o conteúdo do pointer, e no caso a sua estrutura só tem o pointer, sem alocar memória para que caiba seu conteúdo.
Os dois primeiros devem ter passado porque o número de bytes envolvidos é pequeno (“1” são 2 bytes e “cake” são 5). Já no terceiro estoura o espaço e sobrepoe algum espaço relevante da memória.
Então, você precisa fazer um malloc para cada um dos campos com o espaço necessário, sempre considerando +1 devido ao ‘0’ no final dos arrays de char.