[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Poucas respostas e muitas perguntas de MAC 122...
Paulo Eduardo A. Silveira writes:
> Primeiro umas respostas para o Jay e depois umas perguntas pro
> professor...
> Oi Jay...
> Quanto ao primeiro problema eu nao sei, mas o scanf funciona assim...
> scanf("%x", &variavel);
> o xdepende do tipo de variavel que voce ta pegando... algumas:
> i ou d para int
> c para char
> f para float
> lf para double (nao tenho certeza se e lf)
> s para string (vetor de char)
> e variavel logicamente eh o nome da variavel que voce quer armazenar o
> dado obtido...
>
> Ja o fscanf e para ler de um arquivo (todo comando parecido com os de
> entrade e saida para tela que tem F na frente (f de file) trabalha com
> arquivos)
> E igualzinho ao scanf, so que tem um argumento antes, esse argumento eo
> nome da variavel ponteiro que esta apontando para o arquivo (no caso do
> programa e a variavel arquivo)
Outra coisa que está sendo usada no programa ex11: o scanf() e o fscanf()
devolvem um inteiro cujo valor é o número de valores que foram lidos com
sucesso.
> Agora eu e que tenho uma pergunta para o professor ou para quem possa me
> ajudar:
> Num momento do programa o professor usa o comando calloc, queria saber se
> e o mesmo que o malloc so que multiplicado N vezes, sendo n o primeiro
> argumento, eh isso?
Sim. A unica diferença é que o calloc() inicializa a memoria alocada com
zeros.
> Em outro lugar o professor escreveu ptr=els, isto siginifica que ptr vai
> "apontar" para mesma alocacao de memoria que els?
Sim. Estas duas variáveis (alocadas em duas celulas de memoria distintas)
passam a conter o mesmo endereco.
> Se isso eh correto, quando voce escreve ptr++, voce esta apontando para
> els[1] (fingindo que eh uma matriz, so para exemplificar), e porque nao
> poderia ser escrito els++ ao inves de ptr++?
els++ altera o valor de els. Imagino que eu queria alterar o valor de ptr
(fazer ele apontar para o proximo objeto), mas nao o de els.
Sobre els[1], veja este exemplo:
#include <stdio.h>
main()
{
int v[5]={0, 1, 2, 3, 4};
int *p;
p=&v[2]; /* p passa a apontar para o endereco de v[2] */
printf("%d %d %d %d %d\n", v[0], v[1], *p, *(p+1), p[2], 3[p]);
}
> Ja que essa "els" eh tipo de um vetor de estrutura, na hora de declarar
> els eu nao poderia escrever:
> struct elemento **els;
Assim ele nao executa a alocacao de memoria. Apenas declara o apontador els.
> Ai eu poderia usar malloc ao inves de calloc e alem disso nao precisaria
> usar a estrutura ponteiro, e mais, poderia utilizar a notacao els[x], que
> facilita muito para entender o programa, nao? Ou o professor fez iss para
> a gente aprender ponteiro melhor (que, aqui entre nos, eh um saco, nao?)
Ponteiros, alocacao dinamica, etc sao muito coooool... voce vai passar a
amá-los! Y.
> Alguem pode me ajudar?
> FaloWWW
>
> Bye
> peas
>
> -------------------------------------
> Paulo Eduardo A. Silveira
> Undergraduating in Computer Science
> University of Sao Paulo - IME
> http://www.linux.ime.usp.br/~peas
> -------------------------------------