Ola,

Eu estou fazendo o Curso de C da UFMG, e mandei algumas duvidas pra eles
e nao obtive resposta!:)

Tive algumas duvidas que nao achei resposta, se vcs puderem me ajudar! :)

O compilador que eu uso eh o gcc do linux vers�o: 2.95!

Eu fiz uma fun��o clone da strlen() chamada StrLen() como recomendado de
exercicio. Eu fiz da
seguinte forma:

#include <stdio.h>

int main( int x, int recebe ){

char str1[100]="\0";

x=0;

printf("\n\nDigite uma String: ");
scanf("%s",&str1);
recebe=StrLen(x,str1);
printf("\n\nA str1 contem %d caracteres!\n\n",recebe);

return(0);
}

int StrLen ( int y, char *conta_string ){

   for (; *conta_string != 0; conta_string++ ){

     y++;

   }

return(y);
}


O programa funciona perfeitamente aqui! :)

Eu nele mesmo eu tenho algumas duvidas, se vcs puderem me esclarecer! :)

1) Suponha que eu quisesse que a fun��o StrLen retornasse um ponteiro de
   caracteres ao inves de um inteiro como ela esta retornando. Como eu declaro
uma
   fun��o para retornar um ponteiro ??

   Seria: char *StrLen ( int y, char *conta_string  ) {
          }   ?? Esta correto ?? Funcionaria ??


2) Eu tentei na fun��o StrLen usar um ponteiro para "anexar" o endere�o
de x e altera-lo
   diretamente ao inves de usar o return(y); porem nao consegui! Eu fiz
da seguine forma:


#include <stdio.h>

int main( int x, int recebe ){

char str1[100]="\0";

x=0;

printf("\n\nDigite uma String: ");
scanf("%s",&str1);
recebe=StrLen(x,str1);
printf("\n\nA str1 contem %d caracteres!\n\n",recebe);

return(0);
}

int StrLen ( int *y, char *conta_string ){

   for (; *conta_string != 0; conta_string++ ){

     *y++;

   }

}


Mas tmb nao funcionou! Eu tmb tentei fazer a StrLen da seguinte forma:


int StrLen ( int y, char *conta_string ){

int *p;
p=&y;

   for (; *conta_string != 0; conta_string++ ){

     *p++;

   }

}


Mas tmb nao funcionou! Ele nao alterava o valor da variavel "x" anexada
indiretamente
ao ponteiro de jeito nenhum! :/

O que eu estou fazendo errado ? Como seria o certo ?


3) No seguinte programa:

#include <stdio.h>

int main(){

float x=3.75, *p, **pointer;

p=&x;
pointer=&p;

printf("\n%f\n",**pointer);
printf("\n%f\n",*p);
//printf("Pointer %p p %p x %p",pointer,&pointer,&p);
//printf("Pointer %p p %p",p,&x);
printf("\n");


return(0);
}


O  *p eh o conteudo armazenado em x, certo ?
E &p eh o endere�o da memoria do ponteiro p ?? Esta certo ?
E o p eh o endere�o de memoria da variavel x ? Esta certo ?
E &pointer eh o endere�o de momoria do ponteiro pointer? certo ?
E finalmente pointer eh o endere�o de memoria do ponteiro p ? correto ?

Minha duvida eh no &p e p e pointer e &pointer. hehehe :)


4)  Essa eh minha ultima pergunta. Como eu crio uma biblioteca .h (header)
?
    Por exemplo suponha que esse pequeno programa que eu fiz como "clone"
do StrLen eu quisesse
    transformar em um header, como eu faria ??

    Como eu o chamaria na include do meu programa a usar essa StrLen ? seria:
#include "StrLen.h" ??

    Se vc pudesse me dar um exemplo de como fazer isso com esse programa
eu ficaria muito grato.


Obrigado pela ajuda e pelo bom curso que vcs escreveram. =]

[ ]'s



------------------------------------------
Use o melhor sistema de busca da Internet
Radar UOL - http://www.radaruol.com.br




Assinantes em 28/12/2001: 2300
Mensagens recebidas desde 07/01/1999: 148118
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
            mailto:[EMAIL PROTECTED]

Responder a