dark_splinter Posted May 5, 2006 at 11:53 AM Report #25750 Posted May 5, 2006 at 11:53 AM Bem este é o meu primeiro post no portugal-a-programar 😁 E então a duvida é a seguinte: neste codigo: #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct sPessoa { int Idade; char Nome[20+1]; struct sPessoa *Prox; } PESSOA; typedef PESSOA* FILA ; void Inic(FILA* Fila) { *Fila=NULL; } void Inserir(FILA* Fila, int Idade, char* Nome) { if (*Fila==NULL) { *Fila = (PESSOA*) malloc(sizeof(PESSOA)); if (*Fila==NULL) return; (**Fila).Idade = Idade; strcpy((**Fila).Nome, Nome); (**Fila).Prox=NULL; } else Inserir(& (**Fila).Prox, Idade, Nome); } E n tou perceber muito bem o que acontece nesta linha: *Fila = (FILA) malloc(sizeof(PESSOA)); A minha ideia é que sendo FILA um pointer para estrutura PESSOA o que ele vai fazer é alocar em *fila(que é um pointer que tá a ser usado por outro) uma estrutura PESSOA que tá ser apontada pelo pointer *fila.... e para acedermos a essa estrutura temos de **fila .... exemplo (**fila).idade ... Ésta e ideia com que tou .... mas n tenho bem a certeza .... podiam comentar sff 😄 ...
untouchables Posted May 5, 2006 at 12:36 PM Report #25761 Posted May 5, 2006 at 12:36 PM ele aloca memória necessária por um tip de dados PESSOA, e cria um apontador para FILA, cujo nome do apontador será 'fila'. malloc aloca memória que tu pedes, útil nas situações que tanto podes querer trabalhar com 3 elementos como 5000. neste caso, ele cria um apontador, que aponta para um endereço na memória, que o programa reservou para alojar aquela PESSOA, e *fila é um apontador para isso. não sei se era esta a tua duvida...
dark_splinter Posted May 5, 2006 at 03:02 PM Author Report #25792 Posted May 5, 2006 at 03:02 PM obrigadão 🙂 ... era mais ou menos isso... resumindo ele vai alocar um tipo PESSOA que e este tipo PESSOA tá a ser apontado por *fila.... isto é : fila = Endereco de *fila.... *fila = Endereço de PESSOA .... **fila = A estrutura PESSOA .... 😄 E o que aquela linha de codigo fez foi em *fila que era igual NULL .... pos a *fila a apontar para uma estrutura PESSOA que ficou alocada em memoria 😄 ... Se me confirmarem o raciocinio tenho a minha duvida esclarecida 😄
untouchables Posted May 5, 2006 at 03:34 PM Report #25800 Posted May 5, 2006 at 03:34 PM aquela linha de codigo serviu para o programa "pedir" ao computador a memoria necessaria para alocar aquele tipo de dados. basicamente foi isso que aconteceu 😄
dark_splinter Posted May 5, 2006 at 07:05 PM Author Report #25877 Posted May 5, 2006 at 07:05 PM já consegui captar ... e as coisas já me tão dar bem 😁... obrigadão pela dica 😉
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now