rafaelrrf
Membro Pleno-
Posts
45 -
Cadastrado em
-
Última visita
Reputação
0-
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?
-
Sim, mas vamos supor que o tamanho do atributo da struct, nós não conhecemos. Eu só quero saber se é possivel obter o numero de bytes atraves de um ponteiro de um atributo que é a apontado pelo mesmo.
-
Pessoal se eu tenho uma struct Teste, por ex: struct Teste {int a;char b[10];}Teste;void main() {char *ponteiro;ponteiro = &Teste.b;printf("Sizeof do atributo B: %d", sizeof(ponteiro));} Porque quando dou o printf ele não me da o numero de bytes do atributo da struct? Ele está me dando o numero de bytes da variavel ponteiro, mas eu quero o numero de bytes do atributo que ela está apontando. Alguem saberia? Agradeço.
-
Pessoal, se eu tenho um ponteiro do tipo char que aponta para o endereço da struct "Teste", por exemplo: char *ponteiro = &Teste; Supondo que o endereço apontado pelo ponteiro seja 0x0001, ou seja, o endereço do primeiro atributo da struct. Como eu faria para incrementar esse ponteiro para que ele recebesse o endereço do segundo atributo da struct?
-
Legal @isrnick, ajudou muito. Resolvido.
-
Legal @isrnick, parece que este é o caminho. Afinal, pode me explicar o que está acontecendo no código? Agradeço.
-
Eu quero imprimir meu buffer. Sim, cada char ocupa 1 Byte. Vejamos um novo exemplo, tenho um vetor de char de 50 bytes : char buffer[50]. E uma variavel inteira: int x = 10. O que eu quero é passar apenas o valor de "x" para o "buffer", ou seja, como x tem 4 bytes, acredito que ocupara então 4 bytes no buffer. Sendo assim ocupará 4 posições no buffer, certo? Mas eu quero fazer essa passagem sem usar funções de conversão, como sprintf. O que eu quero é algo como passar o conteudo do endereço de cada byte do inteiro para o buffer usando ponteiros, mas n estou conseguindo fazer isso. Conseguiu entender?
-
E porque não consigo imprimir o vetor char com %s? Por exemplo: printf( "show int32_b: = %s\n", int32_b ); Isso quer dizer que algo foi modificado...
-
Mas em quais posições do array eu estou inserindo o numero 10 que é o valor de x? Como eu faria para inserir em outra posição? Pelo visto você esta convertendo o array para um inteiro com o cast, mas eu não quero me desfazer dele, preciso imprimir ele como uma string. Pois também tenho que inserir nesse array, caracteres, além dos valores inteiros. Seria possível?
-
Não quero usar nenhum tipo de conversão como sprintf etc. O que eu queria fazer era atribuir o valor inteiro que tem 4 bytes no meu sistema, para o vetor char, ocupando apenas 4 bytes no mesmo, seria possível?
-
Viventes, Se eu tenho um vetor char de 10 posições: char v[10]. E um inteiro x com valor 10: int x = 10. Como eu poderia passar para o vetor "v" o valor inteiro em "x" usando ponteiros?
-
Amigo, tente ler novamente minha pergunta, acho que você não entendeu...
-
Pessoal Eu tenho um vetor buffer do tipo char, e quero alocar nele um valor inteiro, como isso é possível sem utilizar a função sprintf ? e como obter o numero de numeros contidos no valor da variável? Pois o meu problema é que tenho uma estrutura, e tenho no corpo do programa um buffer que vai receber todos os atributos da estrutura, cada atributo na sua sequencia. E estou usando subtração de ponteiros obter o deslocamento de cada atributo no buffer, com o deslocamento obtido eu consigo armazenar os valores das variaveis na sua sequencia, mas o problema são as variaveis do tipo int e float na estrutura, porque quando faço o deslocamento com ponteiros, ele conta apenas 4 bytes(Tamanho de um int). E se eu tiver usado o sprintf, e inserido os valores no buffer, se o valor conter mais que 4 numeros, o ultimo provavelmente será sobreposto pelo proximo atributo da estrutura. Podem ajudar?
-
Consegui fazer sem o return rs. Nao sei se é posivel usar esse comando em uma macro. Mas tudo bem. Um problema que ocorreu na macro é esse: note: in expansion of macro 'func' Sabe resolver isso?
-
Hum isso eu entendo. O meu problema é que eu tenho uma função que está retornando um char *, e quero transformar ela em uma macro...
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