collapse

* Posts Recentes

Resmas de Trotinetes por KammutierSpule
[Ontem às 17:39]


[Material] Compra de material por papamoscas
[15 de Fevereiro de 2019, 17:05]


Motor com travão por Alfredo Garcia
[13 de Fevereiro de 2019, 22:56]


Porta Arduino Baixando tensao por mauriciosouza100
[08 de Fevereiro de 2019, 13:39]


Fábricas de componentes electrónicos em Portugal? por SerraCabo
[07 de Fevereiro de 2019, 13:54]


Sistema embarcado movido a energia solar por Njay
[06 de Fevereiro de 2019, 15:01]


Tentanto reaver alguns conhecimentos de eletronica por filjoa
[06 de Fevereiro de 2019, 02:58]


bma180 avr por vasco
[03 de Fevereiro de 2019, 21:40]


3D Prusa hephestos da BQ por josecarlos
[30 de Janeiro de 2019, 18:43]


Gerador de lixo radioeléctrico III por SerraCabo
[29 de Janeiro de 2019, 19:40]

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

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

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.223
    • 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.223
    • 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/

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.468
  • 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.223
    • 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/