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]