Peinado
(usa Ubuntu)
Enviado em 03/03/2011 - 16:40h
não existe incrementação de ponteiro.
Ponteiro aponta pra uma região de memória, se voce fazer ptr++ se vai aponta para algo desconhecido, porque a memoria é toda dinamica.
Esse trabalho é facinho.
Se faz uma struct contendo as variaveis aluno, nome, nota.
typedef struct Aluno {
int nota1, nota2, nota3 etc.....;
char nome;
struct Aluno *proximo
} *Aluno;
typedef struct inicio {
struct Aluno *raiz;
} *inicio;
funcao que aloca nemoria, so pra iniciar a struct.
inicio aux = (inicio) malloc(sizeof(struct inicio));
aux->inicio=NULL;
return aux;
Insere (Aluno *noatual, ..........outras variaveis que voce deseja inserir)
if noatual=null
(*noatual) =(no) malloc(sizeof(struct no))
(*noatual)->nota1=????
(*noatual)->nota2=???
(*noatual)->nome=???
(*noatual)->Proximo= NULL
else
return Insere (&(*Proximo),........nome,nota1,nota2,nota3,etc.....)
Se o seu professor falou que é pra 50, então ele ta pedino algo estático.
O que ue to dando de exemplo é usando ponteiros e sendo uma estrutura dinamica que se auto-ajusta na memoria.
Por isso que nao existe a instrução prt++ que o nosso amigo citou, pois a memoria é dinamica ela vai allocando memoria conforme é necessário.
O exemplo funciona assim, ele aloca a estrutura inicial chamado inicio.
Dai sempre que for inserir alguem o proximo espaço fica VAZIO e isso é caracteristica de uma LISTA DINAMICA ENCADEADA
ALUNO 1 ---> ALUNO 2 ---> ALUNO 3 ----> VAZIO
Seu professor disse que coloca 50 espaços, dai se tu num usa todos os 50 se ta disperdiçando memoria e se ter mais de 50 alunos vai dar um overflow.
A vantagem da dinamica é que ela se auto ajusta independente do tamanho dos dados, o limite é a memoria RAM.
Se estoura a Memoria RAM dai se tem que ter uma memoria secundaria e por ai vai.
To esperano aula começa entao to explicano aki so pra passa o tempo.