collapse

* Posts Recentes

Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


+ LASERs por dropes
[30 de Maio de 2025, 23:11]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]


Motoserra Stihl 120C por brunus
[11 de Fevereiro de 2025, 16:29]

Autor Tópico: Duvida basica, em C ha cast automatico?  (Lida 7204 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Duvida basica, em C ha cast automatico?
« em: 05 de Outubro de 2014, 23:03 »
Ora boas pessoal :D

Tenho uma pequena duvida que agora não consigo me lembrar nem encontrar.
Quero fazer uma alocalização dinamica de dados mas em C, com malloc. Se eu quiser aceder ao 2º elemento como faço? Ex:

uint32_t *valor = malloc(10*sizeof(uint32_t));

agora faço
*(valor+1) ou *(valor+1*(sizeof(uint32_t))); ?
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

StarRider

  • Visitante
Re: Duvida basica, em C ha cast automatico?
« Responder #1 em: 05 de Outubro de 2014, 23:12 »
Ora boas pessoal :D

Tenho uma pequena duvida que agora não consigo me lembrar nem encontrar.
Quero fazer uma alocalização dinamica de dados mas em C, com malloc. Se eu quiser aceder ao 2º elemento como faço? Ex:

uint32_t *valor = malloc(10*sizeof(uint32_t));

agora faço
*(valor+1) ou *(valor+1*(sizeof(uint32_t))); ?

Boas,

A var "valor" é um ponteiro para uint32_t logo o compilador calcula automaticamente o
offset necessário, por exemplo, podes indexar como se fosse um array : valor[0] ... valor[9],
ou podes incrementar (++) ou adicionar (+n) o ponteiro em si e de-referenciar o conteúdo
normalmente. Usa *(valor+1) ou valor[1].

Abraços,
PA
« Última modificação: 05 de Outubro de 2014, 23:15 por StarRider »

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvida basica, em C ha cast automatico?
« Responder #2 em: 05 de Outubro de 2014, 23:26 »
Obrigado  ;D
Nunca me lembro disto.
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.986
  • NERD!
Re: Duvida basica, em C ha cast automatico?
« Responder #3 em: 06 de Outubro de 2014, 09:51 »
Apesar de poderes fazer de várias maneiras, recomenda-se usar "valor[1]" para tornar o código mais legível.

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvida basica, em C ha cast automatico?
« Responder #4 em: 06 de Outubro de 2014, 09:55 »
concordo
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/