Ir ao conteúdo
  • Cadastre-se

Endereço de ponteiro


rafaelrrf

Posts recomendados

Pessoal,

 

Como seria possivel obter o numero de bytes de um endereço de um ponteiro? por exemplo:

 

char x[100];

char *ptr;

 

ptr = &x;

 

sizeof(*ptr);

 

O que eu tento fazer é dar um sizeof no conteudo do ponteiro, mas quando faço isso obtenho o numero de bytes do tipo do ponteiro. Alguma sugestao para obter o numero de bytes do endereço do ptr?

Link para o comentário
Compartilhar em outros sites

Eu acho que entendi o que você quer,

e acredito 99.99% de certeza que sizeof não pode fazer,

Você verá também isso através do código abaixo.

#include<stdio.h>//principal [NO EXCEPTION CARE]int main( void ){  char vector[100];  char (*point_vt)[100] = NULL;  printf( "SizeOf vector: = %d\n", sizeof vector );  printf( "SizeOf point_vt: = %d\n", sizeof point_vt );  point_vt++;  printf( "Value of point point_vt: = %d\n", (int)point_vt );  point_vt = &vector;  printf( "Value of point point_vt: = %d\n", (int)point_vt );  printf( "SizeOf point_vt: = %d\n", sizeof point_vt );  return 0;  }
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@dyR3X

 

Muito bom.

 

 

Se fosse meter esse código em alguma função e depois passar para ela o ponteiro para o array (ex. vector), o tamanho do array ainda precisaria ser conhecido de antemão. Mas chegaríamos num resultado próximo.

#include <stdio.h>int main(){    int  (*point_vt_i)[100];    char (*point_vt_c)[100];    size_t size;    size = (unsigned) sizeof(*point_vt_i) / sizeof(**point_vt_i);    printf("%u\n", size);    size = (unsigned) sizeof(*point_vt_c) / sizeof(**point_vt_c);    printf("%u", size);    return 0;}

[ ]'s

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...