PDA

View Full Version : (C) non capisco qual'è l'errore, potreste aiutarmi?


ciao_a_tutti123456
04-04-2023, 18:23
ciao, scusate non capisco cosa ha di sbagliato in questo programma... da quello che ho capito mi prende il passaggio di parametri per riferimento (con le variabili record) come se fosse un'aggiunta alla dichiarazione ma non sono sicura. Faccio la terza superiore e ho appena iniziato questo argomento, se potete darci un'occhiata grazie davvero.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Vendita
{
int Codice;
char Nome[20];
float Prezzo;
int Venduti;
};

void Inserisci(struct Vendita *j);
void Uscita(struct Vendita k);

int main()
{
struct Vendita x, y, v[100];
int i=0;


Inserisci(&x);

Inserisci(&y);

for(i=0;i<5;i++)
{
Inserisci(&v[i]);
}

Uscita(x);
Uscita(y);
for(i=0;i<5;i++)
{
Uscita(v[i]);
}

return 0;
}

void Inserisci(struct Vendita *j)
{
printf("codice: ");
scanf("%d",j.Codice);

printf("\nnome: ");
scanf("%s",j.Nome);

printf("\nprezzo: ");
scanf("%f",j.Prezzo);

printf("\nvenduti: ");
scanf("%d",j.Venduti);
}

void Uscita(struct Vendita k)
{
printf("\ncodice: %d",k.Codice);

printf("\nnome: %s",k.Nome);

printf("\nprezzo: %f",k.Prezzo);

printf("\nvenduti: %d",k.Venduti);
}

mi da questo errore:
44 15 C:\Users\39331\Desktop\es. pag. 98.cpp [Error] request for member 'Codice' in 'j', which is of pointer type 'Vendita*' (maybe you meant to use '->' ?)

anche con le variabili Nome, Prezzo e Venduti, potreste aiutarmi? Mi fareste un grande favore, grazie mille:)

bancodeipugni
04-04-2023, 20:40
non ricordo troppo ma:
prova a passare Inserisci() fuori loop con una istanza sola di Vendita

-MiStO-
06-04-2023, 09:06
guarda, il messaggio ti dice già tutto e ti da pure una soluzione
request for member 'Codice' in 'j', which is of pointer type 'Vendita*' (maybe you meant to use '->' ?)

ti riporto la firma del tuo metodo:
void Inserisci(struct Vendita *j)

che tipo è j?
come si accede ai membri di una struct/class da un suo puntantore?
dai su, c'è già tutto scrittto ;)

altra cosa, giusto per puntualizzare:
passare un puntatore != passare per riferimento

jepessen
16-05-2023, 17:26
Prova con un debugger. Metti un breakpoint all'inizio e poi esegui il tutto passo passo. Vedrai che ti accorgerai da solo del problema.