Ir ao conteúdo
  • Cadastre-se

Pergunta sobre Ponteiro


xagun

Posts recomendados

Boa tarde gente, seguinte , minha dúvida talvez seja simples, mas to quebrando a cabeça c isso:

 

Quando eu crio um ponteiro da seguinte forma ->             ponteiro = malloc (10*sizeof (int)); 

 

e eu cadastro no meu for 20 numeros inteiros, por que ele armazena 20 números e não apenas os 10 ? 

 

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, xagun disse:

ponteiro = malloc (10*sizeof (int));

na verdade com apenas sizeof(int) tu esta dizendo pro malloc que quer um espaço de memória de 1 int, com 10*sizeof(int) tu esta dizendo ao malloc que quer um espaço de 10 int

a sintaxe correta é ponteiro = (int *)malloc (10*sizeof (int));

também é possível fazer assim ponteiro = (int *)malloc (sizeof (v[ 10 ]));

Link para o comentário
Compartilhar em outros sites

sim, existe como delimitar um tamanho

por exemplo...

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	setbuf(stdout,NULL);
	int tam;
	printf("Digite tamanho:");
	fflush(stdin);
	scanf("%i",&tam);
	int *v=(int *)(malloc(tam*sizeof(int)));
	for(int i=0;i<tam;i++){
		printf("Digite valor:");
		fflush(stdin);
		scanf("%i", &(*(v+i)));
	}
	printf("\nVetor:\n");
	for(int i=0;i<tam;i++){
		printf("%i\t",*(v+i));
	}
	return EXIT_SUCCESS;
}

eu leio um valor x e aloco memoria com base nele...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Tava ligado nisso já, porque aí foi a mesma coisa que fiz, quem delimita o tamanho dele aí na vdd é o usuário , mas que 

na verdade é o FOR na condição de parada, fiz isso aqui. O que tava querendo saber mesmo é se n tem como delimitar no malloc, sacou ? 

 

Então tipo, o ponteiro é sempre uma alocação que não termina ? Ex: se eu quisesse que tam = 1000, meu ponteiro iria cadastrar os 1000 valores sem problema algum ?

Link para o comentário
Compartilhar em outros sites

vetores de tamanhos grandes tipo 1000000 não é possível criar normalmente int v[1000000]

mas com o malloc independente do valor isso é possível

porém como malloc mexe com a memoria do computador, o limite máximo de espaço que tu pode usar vai ser a memória disponível do computador

  • Curtir 1
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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!