Ir para conteúdo
Fórum Script Brasil

maginot

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre maginot

maginot's Achievements

0

Reputação

  1. Olá pessoal, estou estudando C e um assunto que achei muito interessante é sobre os pointers. Algumas duvidas me apareceram ao formar o seguinte codigo: #include <stdio.h> int main() { int static var = 5; int static *var_ptr; int static **var_ptr2; var_ptr = &var; var_ptr2 = &var_ptr; printf(" var_ptr p= %p\n", var_ptr); printf(" var_ptr2 p= %p\n", var_ptr2); printf(" *var_ptr2 p= %p\n", *var_ptr2); printf("**var_ptr2 d= %d\n", **var_ptr2); return(0); } se tenho var_ptr2 sendo um pointer do pointer *var_ptr então quando imprimo printf(" var_ptr2 p= %p\n", var_ptr2); eu na verdade estou imprimindo o endereco do pointer var_ptr e não do pointer var_ptr2, certo ?? Alem disso, outra duvida analisando os endereços da memória é se quando ele imprime algo como 0x8049628 na verdade é o endereco da memoria dentro da area do programa executado ou é a area da memoria fisica real do computador (logo se eu lesse 0x8049628 em /dev/mem encontraria o int de 5)? Essa segunda duvida me surgiu pois apos executar varias vezes o mesmo programa vi que a saida se mantinha a mesma, então fiquei pensando se não seria o endereco dentro do espaco do programa, logo um offset dentro da memoria real. Espero que possam me ajudar. [ ]'s
×
×
  • Criar Novo...