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?
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
#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.
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.
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;
}
}