Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
diegottt

Ponteiro para ponteiro

Pergunta

Galera bom dia , estou com uma duvida como acesso a chave dentro dessa estrutura, ao meu ver seria assim ex: (*raiz)->reg.chave = 3  , mais nao estou conseguindo acessar a variavel chave. 

 

typedef int tipoChave;

 

typedef struct tipoRegistro{
    tipoChave chave;
    //outros itens...
}tipoRegistro;

 

typedef struct tipoNo* tipoApontador;

 

typedef struct tipoNo{
    tipoRegistro reg;
    tipoApontador esq,dir;
}tipoNo;
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por joaquim_bezzera
      Estou fazendo um trabalho para a faculdade criando uma estrutura de cadastro de uma corrida. Já consegui fazer grande parte mas não consigo resolver esses pontos. Alguém saberia resolver?

    • Por luannsr12
      Olá pessoal, parece que o meu Photoshop atualizou aqui, pois apareceu algumas ferramentas que eu não tinha visto, e também sumiu o ponteiro do seletor , alguém pode me ajudar
    • Por jadsonlucena
      #include <iostream> #include <cstdlib> using namespace std; struct Page { int a; Page* b; }; int main(int argc, char *argv[]) { int size = 5; Page* p = (Page*) malloc(sizeof(Page)); p->a = 5; p->b = (Page*) malloc(sizeof(Page) * size); for (int i = 0; i < size; i++) { p->b[i] = NULL; } cout << p->b[3] << endl; return 0; } A ideia era criar uma página onde dentro teríamos um array de páginas inicialmente nulas. Mas por algum motivo eu não estou conseguindo criar o array interno. Pois quando tento instanciar o valor nulo para as células do array, o compilador informa que não é um array e não pode acessar.
       
      Antes de qualquer coisa, realmente necessito que seja uma alocação dinâmica.
       
      Grato desde já pela ajuda... 
    • Por jesseufrrj
      Boa noite galera,  
      Iniciante no C e se alguém puder me dar uma ajuda.  
       
      O programa pega os dados de pacientes, usa uma função para achar o "fator" e usa esse fator multiplicado pela idade para gerar o CA(condicionamento aeróbico). Devo usar estruturas, alocação dinâmica e ponteiro. Não consigo entender o erro.  
       
        #include <stdio.h> #include <stdlib.h> typedef struct { char nome[30]; int idade; float nbcr; float nbca; } TPaciente; void lerDados(TPaciente *P, int n); int resistencia (TPaciente *P, int n); // Nessa linha aparece a seguinte mensagem de erro -> [Warning] passing argument 1 of 'resistencia' from incompatible pointer type int main(){ TPaciente *g; // declarando um ponteiro do tipo TPaciente; int n; printf("Qual o numero de pacientes voce vai calcular a resistencia aerobica? \n"); scanf("%d", &n); g = ((TPaciente*) malloc(n*sizeof(TPaciente))); lerDados(g,n); resistencia(g,n); int i; float CA; int fator; for(i=0; i<n; i++){ fator = resistencia(g); //fator recebe o resultado da chamada de função resistencia CA = fator * g->idade; printf("\nO Condicionamento Aerobico do doente %s e %.0f", g->nome, CA); } free(g); } void lerDados(TPaciente *g, int n) { int i; for(i=0;i<n;i++){ printf("\n Qual o nome do paciente: "); scanf("%s", &(g+i)->nome); printf("\n Qual a idade do paciente: "); scanf("%d", &(g+i)->idade); printf("\n Qual o nbcr do paciente: "); scanf("%f", &(g+i)->nbcr); printf("\n Qual o nbca do paciente: "); scanf("%f", &(g+i)->nbca); } } int resistencia(TPaciente *g, int n){ int i, fator; float media; for(i=0; i<n ; i++){ media = ((g+i)->nbcr*3 + (g+i)->nbca*5)/10; if(media <= 70){ printf("FATOR = 3"); fator = 3; } if((media > 70) && (media < 100)){ printf("FATOR = 2"); fator = 2; } if(media > 100){ printf("FATOR = 1"); fator = 1; } return fator; } }  
       
       
       
       
       
       
    • Por Gabriel De Freitas
      Então galera, eu tô numa dúvida extrema com o código abaixo. Eu começei a estudar ponteiros em C faz alguns dias e eu acredito que seja a solução pro meu problema, mas não sei como tratar o código.
       
      O problema é o seguinte. Na função multiplicarMatrizes() eu não consigo acessar a matriz valoresC obviamente pq foi declarada dentro do main. Mas o problema é que eu não posso declara-la 'globalmente' fora do main devido ao fato de que eu preciso ler o numero de linhas/colunas de cada matriz no inicio do programa (não posso declara-las no código com um numero constante de linhas ou colunas).
       
      Código:
      #include<stdio.h> #include<stdlib.h> #define G 5 void lerMatrizes(int matrizX[][G], int matrizY[][G]); void multiplicaMatrizes(int A[][G], int B[][G]); int linhasA, colunasA, linhasB, colunasB; int main() { int i, j; printf("\nInforme a quantidade de linhas da matriz A : "); scanf("%d",&linhasA); printf("\nInforme a quantidade de colunas da matriz A : "); scanf("%d",&colunasA); printf("\nInforme a quantidade de linhas da matriz B : "); scanf("%d",&linhasB); printf("\nInforme a quantidade de colunas da matriz B : "); scanf("%d",&colunasB); int valoresA[linhasA][colunasA], valoresB[linhasB][colunasB], valoresC[colunasA][linhasB]; lerMatrizes(valoresA, valoresB); if (colunasA == linhasB) { multiplicaMatrizes(valoresA, valoresB); } else { printf("\n\nNão é possivel multiplicar matrizes neste formato. O numero de colunasA tem que ser igual linhasB"); } return 0; } void lerMatrizes(int matrizX[][G], int matrizY[][G]) { int i, j; // Gera Valores p Matriz1 for(i=0; i<linhasA; i++) { for(j=0; j<colunasA; j++) { matrizX[i][j] = i+1 * j+1; } } // Gera Valores p Matriz2 for(i=0; i<linhasB; i++) { for(j=0; j<colunasB; j++) { matrizY[i][j] = i+1 * j+1; } } } void multiplicaMatrizes(int A[][G], int B[][G]) { int i, j, k, temp=0; for(i=0; i<colunasA; i++) { for(j=0; j<linhasB; j++) { valoresC[i][j]=0; for(k=0; k<G; k++) temp += A[i][k] * B[k][j]; valoresC[i][j] = temp; temp=0; } } } Eu fiz o código usando um numero constante de linhas/colunas, aí qndo fui altera-lo travei nesta parte aí. Não consegui também passar a matriz por parâmetro, a solução seria um ponteiro?
       
      Agradeço desde já!
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.