Aiuto con un esercizio

di il
2 risposte

Aiuto con un esercizio

Salve ragazzi sono nuovo e spero che possa fare una richiesta del genere XD
comunque sto studiando la facoltà di informatica e sono nuovo nel campo della programmazione fino ad ora me la sono cavata ma con l'introduzione delle struct e dei puntatori sono un po confuso ho fatto questo programma:
#include <stdio.h>
#include <stdlib.h>
#define grandezza 100

struct canile{
char nome[grandezza];
char razza[grandezza];
int eta;
};

int riempi(struct canile **);
struct canile *caricascheda();
void cerca_cane(struct canile **,int n);


int main()
{
    struct canile *p;
    int n;
    n=riempi(p);
    cerca_cane(p,n);
    return 0;
}


int riempi(struct canile **p){
    int n,i;
printf("quanti tipi di cani abbiamo?\n");
scanf("%d", &n);
p=malloc(n*sizeof(struct canile));
for(i=0;i<n;i++)
p[i]=caricascheda();
return n;
}


struct canile *caricascheda(){
struct canile *p=malloc(sizeof(struct canile));
printf("nome cane?\n");
scanf("%s", p->nome);
printf("razza cane?\n");
scanf("%s",p->razza);
printf("eta cane?\n");
scanf("%d", &p->eta);
return p;
}


void cerca_cane(struct canile **p,int n){
    int i;
    char razza[grandezza];
printf("digitare la razza\n");
scanf("%s", razza);
for(i=0;i<n;i++){
if(strcmp(p[i]->razza,razza)==0){
    printf("NOME:%s\nETA%d\n", p[i]->nome,p[i]->eta);
}
}
}
quando devo cercare la razza del cane crasha...qualcuno sa spiegarmi il perchè?

2 Risposte

  • Re: Aiuto con un esercizio

    Tanto per cominciare, il puntatore p che passi alle funzioni 'riempi' e 'cerca_cane' non è dello stesso tipo di quello che si aspettano le funzioni.

    Non dovrebbe neanche compilare.

    Cerca di capire dove sbagli.
  • Re: Aiuto con un esercizio

    Ciao grazie per la risposta ho risolto il problema ho tolto (malloc)all'interno della funzione riempi
Devi accedere o registrarti per scrivere nel forum
2 risposte