Andreatti 0 Denunciar post Postado Fevereiro 12, 2011 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
guidjos 65 Denunciar post Postado Fevereiro 13, 2011 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
Andreatti 0 Denunciar post Postado Fevereiro 13, 2011 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
guidjos 65 Denunciar post Postado Fevereiro 13, 2011 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 0 Denunciar post Postado Fevereiro 13, 2011 Bom... nao adianta querer aprender tudo de uma vez... Vou procurar ler mais sobre arrays... Considere o topico resolvido. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
AcquaBlue 0 Denunciar post Postado Fevereiro 14, 2011 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
guidjos 65 Denunciar post Postado Fevereiro 15, 2011 Só gostaria de ressaltar que a solução acima é C++. Em C, não se deve fazer casting do retorno de funções retornando void *. Compartilhar este post Link para o post Compartilhar em outros sites