Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andreatti

[Resolvido] Arrays em C

Recommended Posts

Bom galera, to iniciando uma faculdade de SI e to vendo programacao em C.

Bom eu ja tenho experiencia com logica de programacao e alguma experiencia em Turbo Pascal, Delphi, PHP, Visual Basic(conheco o basico)

No pascal eu ja tenho um conhecimento intermediario...

Ja em C...

 

Gostaria de saber se em C existe uma maneira de criar um array como se fosse no pacal...

mais ou menos assim: Numeros:array[1..i];

onde futuramente a variavel i tera o valor que o usuario digitar....

se ee digitar 3 o array tera 3 posicoes.

1 ate 3.

 

A sintaxy nao eh bom essa (nem em pascal , mt menos em C) mais a logica bate com pascal...

Procurei na net, acabei vindo para no forum do imasters e acabei sendo redirecionado(por usuarios e topicos) a estudar um pouco de ponteiros, porem nao vi uma maneria de impantar essa logica em C.

 

Obrigado!

 

UGA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não confunda arrays com ponteiros. São coisas bem diferentes.

 

Sugiro que aprenda C lendo algum livro consagrado (os da minha assinatura são bons).

 

int *p;    // declara um ponteiro para int
int a[10]; // declara uma array de 10 int

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... mais tem como eu fazer ssa declaracao de arrays deixando o usuario definir seu tamanho??

 

ai nbesse cofigo você definiu um array de 10 inteiros....eu nao quero deixar ele definido...

Obrigado pela resposta... ja estou realizando testes aki... soh que ainda tenho essa duvida

 

edit:

Esqueci de perguntar como eu uso uma variavel de controle nesse array, para que eu possa saber em que posicao ele esta...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O C99 suporta "variable length arrays". Tanto para acessar membros de arrays como para "derreferenciar" ponteiros que apontam para elementos de arrays, usa-se variáveis de tipos inteiros como auxiliares.

 

Contudo, sugiro que você tome algum tempo lendo os livros que recomendei. A funcionalidade que mencionei acima é bem nova, e poucos compiladores a suportam. É imprescindível que você entenda alguns aspectos da linguagem (como a manipulação de endereços e a utilização de arrays e outros tipos compostos), e estes assuntos são todos cobertos nos livros em questão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andreatti, para criar vetores com tamanhos definidos pelo usuário é necessário entender alocação dinâmica que significa, a grosso modo, 'separar espaço no momento de execução do programa' e não antes como acontece quando predefinimos tamanhos de vetores.

 

Como você disse que vai dar uma olhada, estou deixando só o exemplo de como funcionaria em um vetor de inteiros:

 

int *vetor, tamanho;
tamanho = 15;
vetor = (int*) malloc(tamanho*sizeof(int));

 

Nesse caso tamanho tem um valor que pode ser mudado pelo usuário através de uma função de entra (cin, scanf, etc)...

Funciona basicamente assim:

Cria-se um ponteiro de inteiros (*vetor), então inicializa-se um vetor através da função malloc, que aloca dinâmicamente na memória 'tamanho' vezes o espaço que um INTEIRO ocupa. Ou seja, num vetor de 10 inteiros, ele alocará 10 vezes o tamanho de memória suficiente para um inteiro.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.