noseDeep 0 Denunciar post Postado Junho 25, 2008 opa galera beleza ? então to com um problemasso, com structs ponteiros ..... tipo eu sei ponteiros pra variavel normal sabe manipulação do pontero *(vetor+x) etc so nao sei pra q serve uma struct com pontero e como fazer.... tipo professor deu em aula mas eu perdi essa aula e ninguem da sala soube me explciar alguem rola de uma ajuda ? Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Junho 25, 2008 Uma "struct" é um tipo de dados heterogeneo, ou seja, possui variáveis do tipo primitivo ou mesmo outras structs dentro dela. O ponteiro é uma variável que armazena o endereço de memoria de alguma coisa. "Alguma coisa" pode ser: um inteiro, uma string, uma struct, etc. Exemplo prático: Precisamos fazer uma lista encadeada simples para controlar processos do SO, de forma que o processo será executado em fila, ou seja, o primeiro que chega é o primeiro a ser executado. Precisamos do número do processo e de algum ponteiro que indique quem será o próximo. struct processo{ int numero; struct processo *prox; }; O ponteiro prox é do tipo struct processo. Ele guardará o endereço de memoria alocado para esse tipo de dado. Obs: esse é um exemplo simples, longe da realidade de controle de processos do sistema operacional. Compartilhar este post Link para o post Compartilhar em outros sites
noseDeep 0 Denunciar post Postado Junho 25, 2008 deu pra te uma ideia..... vlw :) e como eu acesso esse struct igual sem pontero ......... processor.numero e processo.prox ? Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Junho 25, 2008 sem ponteiro: struct processo lista; lista.numero com ponteiro: struct processo *lista; lista->numero Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Junho 25, 2008 No caso de com ponteiros, teria que primeiro alocar memória antes de usar eu suponho. Em C: lista = (struct processo*) malloc(sizeof(struct processo)); Em C++: lista = new processo; OU lista = new struct processo; Compartilhar este post Link para o post Compartilhar em outros sites