Ir ao conteúdo

Posts recomendados

Postado

Dale galera , to com um problema aqui meio cabeludo..
O exercício é o seguinte.. criar um ponteiro void que vai armazenar quantidade x de usuários , nome e idade..
Porém minha dúvida é o seguinte.. como eu vou utilizar o ponteiro void e fazer ele armazenar as informações corretamente ?
Eu tentei fazer ele armazenar os valores de forma adjacente , porém depois desse teste


void Buffer(){

	void *pBuffer;
	
	printf("\n%d",pBuffer);
	
	pBuffer = malloc(sizeof(int));
	printf("\nmalloc-int>%d",pBuffer);

	pBuffer += sizeof(int);
	printf("\npulo-4>%d",pBuffer);
	
	pBuffer = malloc(20*sizeof(char));
	printf("\nmalloc-char>%d",pBuffer);

	pBuffer += 20*sizeof(char);
	printf("\npulo-20>%d",pBuffer);
	
	pBuffer = malloc(sizeof(int));
	printf("\nmalloc-int>%d",pBuffer);
}

eu percebi que ele não armazena de forma adjacente.. ou seja as posições de memória que saem no escape %d não são adjacentes ... então eu não conseguiria acessar os valores seguindo essa lógica.. 

Não tenho ideia de como fazer isso agora.. :/ 

Postado

Olá! Apresente-nos na integra a descrição do problema para que assim

passamos entender melhor o exemplo com você nos deu.

 

 

5 horas atrás, Poisoned00 disse:

eu percebi que ele não armazena de forma adjacente.. ou seja as posições de memória que saem no escape %d não são adjacentes ... então eu não conseguiria acessar os valores seguindo essa lógica.. 

E nem poderia ser. Porque o valor de incremento possui razões acima de 1. 

Observe:

 

int main(void){

    // := sinal um outro nome para ...
	void *pBuffer =  NULL;             // = 0
	printf("pBuffer : %u\n", pBuffer); // pBuffer:= 0
	
	pBuffer =  malloc(sizeof(int));    // = x
	printf("pBuffer : %u\n", pBuffer); // pBuffer:= x

	pBuffer +=  sizeof(int);           // = x + [sizeof(int):= 4]
	printf("pBuffer : %u\n", pBuffer); // pBuffer:= (x + 4)
    return 0;}

O.k.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!