Linguagem C | Aula 57 - Ponteiro Genérico

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ธ.ค. 2024

ความคิดเห็น •

  • @denry1928
    @denry1928 4 หลายเดือนก่อน +1

    suas aulas ESTÃO ME SALVANDO no conteúdo. Muito obrigado!

  • @niltoncs7739
    @niltoncs7739 6 ปีที่แล้ว +14

    Melhor professor de linguagem C que já vi. Tem o dom de simplificar o complexo. Seus alunos serão os melhores programadores.

    • @gustavocruz988
      @gustavocruz988 4 ปีที่แล้ว +1

      Que seremos nós, com essas aulas, rs :)

  • @nozesarvozes1248
    @nozesarvozes1248 9 ปีที่แล้ว +9

    só pra constar, estou usando #include e depois de int main setlocale(LC_ALL,"Portuguese"); Assim consigo acenturar e usar "ç".

    • @hayltonrodrigues9730
      @hayltonrodrigues9730 8 ปีที่แล้ว +1

      +Nozes Arvozes Na verade não precisa especificar que é português, irá rodar normalmente. é só deixar as aspas duplas vazia entre elas, ficando (LC_ALL, " ");

  • @diegovasconcelos5414
    @diegovasconcelos5414 9 ปีที่แล้ว +8

    fodastica essa aula

  • @FelipeRGT10
    @FelipeRGT10 10 ปีที่แล้ว +2

    Valeu!

  • @hugo-garcia
    @hugo-garcia ปีที่แล้ว +1

    Tem como em C descobrir um tipo em tempo de execução, como o JavaScript faz usando operador typeof ?

    • @progdescomplicada
      @progdescomplicada  ปีที่แล้ว

      Infelizmente não. C não tem esse recurso. O Padrão C11 tem o comando _Generic, que permitiria fazer uma gambiarra para saber o tipo: stackoverflow.com/questions/6280055/how-do-i-check-if-a-variable-is-of-a-certain-type-compare-two-types-in-c

  • @rasec1xD
    @rasec1xD 11 ปีที่แล้ว +1

    Ambos os valores são equivalentes, porém a notação está em diferentes bases, %p está em hexadecimal e %d em decimal.

  • @OzzyAnny
    @OzzyAnny 3 ปีที่แล้ว

    Obrigada :)

  • @leonardosantos6461
    @leonardosantos6461 7 ปีที่แล้ว +4

    Valeu Sheldon

  • @roger9406
    @roger9406 4 ปีที่แล้ว +1

    @
    Linguagem C Programação Descomplicada Qual é a diferença de usar %p e %d no printf?

    • @progdescomplicada
      @progdescomplicada  4 ปีที่แล้ว +2

      %d: impressão de inteiros
      %p: impressão de ponteiros

    • @roger9406
      @roger9406 4 ปีที่แล้ว +1

      @@progdescomplicada Obrigado pela explicação ^.^

  • @seila7644
    @seila7644 4 ปีที่แล้ว +1

    ​ @Linguagem C Programação Descomplicada tem como descobrir o tipo do ponteiro? typeof(p) funciona?
    ai eu poderia colocar *(typeof(p)*)p?
    minha ideia era usar algo tipo assim
    fread(p,sizeof(*(tipo*)p),1,arq2); mas eu n sei qual struct vou receber

    • @progdescomplicada
      @progdescomplicada  4 ปีที่แล้ว +1

      Até onde eu sei, não há como saber o tipo.

  • @carlaceres
    @carlaceres 3 ปีที่แล้ว

    Qual seria a vantagem de usar um ponteiro genérico em vez de um específico?

    • @progdescomplicada
      @progdescomplicada  3 ปีที่แล้ว +1

      Existem casos em que vc não sabe previamente o tipo do ponteiro necessário. Por exemplos, as funções malloc, calloc e realloc nao sabem para que será usada a memória alocada, nem o tipo de ponteiro que irá receber o endereço da memória alocada, então sempre devolvem um ponteiro genérico.

    • @carlaceres
      @carlaceres 3 ปีที่แล้ว +1

      @@progdescomplicada Muito obrigada, professor!

  • @MarcusViniciusMO
    @MarcusViniciusMO 11 ปีที่แล้ว

    Se eu colocar :
    void *pp;
    pp=&x
    printf("Endereco em pp: %d
    ", pp); //endereço de x
    printf("Endereco em pp: %p
    ", pp); //endereço de x
    O que aparece na tela é diferente, qual a diferença de usar %d e %p no printf?

    • @larisseamorim5883
      @larisseamorim5883 8 ปีที่แล้ว

      acho está diferente porque vc não colocou o *(int*)antes do pp, Testei seu código e coloquei e deu certo
      #include
      #include
      main()
      {
      void *pp;
      int x;
      pp=&x;
      printf("Endereco em pp: %d
      ", *(int*)pp); /*endereço de x*/
      printf("Endereco em pp: %p
      ", *(int*)pp); /*endereço de x*/
      }

    • @barolubar1534
      @barolubar1534 4 ปีที่แล้ว

      @@larisseamorim5883 no caso colocando int significa converter o ponteiro genérico para o tamanho int, ou seja, para 4 bytes?

    • @becauro
      @becauro 4 ปีที่แล้ว

      @@barolubar1534 Converte, só no printf, nesse caso. /// Essa entrada no printf que a Larissa fez, há 4 anos, ela esqueceu dos asteriscos (*). Era pra ser: *(int*)pp)

  • @Mocreio-l2f
    @Mocreio-l2f 6 ปีที่แล้ว

    4:13 o que ele disse?

    • @progdescomplicada
      @progdescomplicada  6 ปีที่แล้ว +2

      Que tem apenas o endereço onde o dado armazenado começa, mas não o tipo do dado apontado pelo ponteiro.

  • @augustorodrigues8492
    @augustorodrigues8492 8 ปีที่แล้ว +1

    Cara vc desenha a memoria torta, eu me sinto desconfortavel com isso kkkk

  • @ruantarcisio9670
    @ruantarcisio9670 4 ปีที่แล้ว

    Obrigado!