Enviado em 03/10/2008 - 18:14h
Galera, implementei um códio de teste para uma lista encadeada estática, mas está dando segmentation fault.Enviado em 03/10/2008 - 18:39h
sei que não é a pergunta mas vou dando algumas dicas ;)Enviado em 03/10/2008 - 21:53h
Olá,Enviado em 04/10/2008 - 08:40h
sim sim, o cast se faz necessário pois malloc, por padrão volta um ponteiro para void, diferentemente do new que já faz a conversão. o free também se faz necessário, pois quando dou malloc eu tiro a responsabilidade do compilador de liberar a memória, passando-a para mim. sem o free o programa irá ficar sugando memória do meu pc.Enviado em 04/10/2008 - 13:25h
o problema aqui nem está no gets(). o problema é que ao passar para a função insereNo a variável palavra (que está na a heap por ter sido alocada através de malloc) como argumento e lá dentro realizar operações de ponteiro entre ela e alguma variável que não esteja na mesma seção (heap), você está tentando cruzar a fronteira entre as diferentes áreas de memória do seu processo, e isso é inválido. L.Dados[L.Dispo].info não está na heap, portanto você não pode utilizar funções de string diretamente entre ela e palavra. ao retornar, palavra terá tentado atravessar a fronteira e retornará apontando para null. e quando for reutilizá-la, já viu...Enviado em 05/10/2008 - 10:28h
fiz isso que me disse. utilizei também a função gets, para ver o que acontecia.Enviado em 05/10/2008 - 10:44h
cast em malloc DEVE ser evitado sim, C99 prevê o tipo de retorno do malloc como void * e já trata a conversão. fazer um cast suprime mensagens do compilador e deve, portanto, ser evitado.Enviado em 05/10/2008 - 12:21h
quanto ao cast, o problema é o seguinte. como disse o colega aí em cima, o c99 define uma extensão para o tratamento dos void* para C, mas isso não está presente no C++. como seu código está meio "híbrido", misturando C e C++ e precisa ser compilado como C++, vai receber um erro de conversão inválida. aí nesse caso, a menos que você ajeite o código para C, vai precisar desse cast.Enviado em 05/10/2008 - 16:10h
"numa analogia boba, é como chegar do méxico para os eua através da alfândega ou do deserto. pela alfângdega, desde que esteja tudo ok, você entra. se for pelo deserto e te pegarem, por mais que não esteja mal intencionado, com certeza a polícia te dará um "segmentation fault"."Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Quero reviver um computador antigo mas tive problemas (12)
como funciona endereçamento ip? (6)