Struct all'interno di una struct con inserimento

di il
3 risposte

Struct all'interno di una struct con inserimento

Salve a tutti, scusate il disturbo, sto cercando di creare una struct, all'interno della quale ci sono vari contenuti tra cui un'ulteriore struct.
diciamo come se fosse una lista della spesa ed io cercassi di aggiungere vari oggetti a questa.
gia' cosi' diciamo ho problemi nella compilazione, perche' dice che "oggetto" non e' definito
struct spesa {
	struct oggetto;
	char nome_spesa[300];
	struct spesa *next_ptr;
};

struct oggetto {
	char nome_oggetto[300];
	float prezzo;
	struct item* next_ptrI;
}

dopodiche' dovrei riuscire a creare una funzione che mi permetta di inserire piu' oggetti alla mia lista della spesa, una sorta di inserimento in testa, qui' so che sbaglio qualcosa con i parametri, pero' non ho proprio idee

void inserisci_oggetto(struct spesa **ptrptr, (?)oggetto){
	struct spesa* tmp_ptr;
	struct oggetto* tmp_ptrI;
	tmp_ptr = *ptrptr;
	*ptrptr = (struct spesa*)malloc(sizeof(struct spesa));
	(*ptrptr)->oggetto = oggetto;
	(*ptrptr)->next_ptr = tmp_ptr;
}

3 Risposte

  • Re: Struct all'interno di una struct con inserimento

    Non è definito infatti: l'hai definito sotto ma il compilatore non lo sa...
  • Re: Struct all'interno di una struct con inserimento

    
    struct spesa {
    	struct oggetto {
    	    char nome_oggetto[300];
    	    float prezzo;
    	    struct item* next_ptrI;
    	};
    	char nome_spesa[300];
    	struct spesa *next_ptr;
    };
    void inserisci_oggetto (struct spesa **ptrptr, oggetto){
    	struct spesa* tmp_ptr;
    	tmp_ptr = *ptrptr;
    	*ptrptr = (struct spesa*)malloc(sizeof(struct spesa));
    	(*ptrptr)-> oggetto = oggetto;
    	(*ptrptr)->next_ptr = tmp_ptr;
    }
    
    hai ragione, grazie mille.. a questo punto pero' inserire come parametro "oggetto" e' sbagliato, perche' e' definito come struct e c'e' bisogno di un campo
  • Re: Struct all'interno di una struct con inserimento

    
    struct oggetto {
    	char nome_oggetto[300];
    	float prezzo;
    	struct item* next_ptrI;
    };
    
    struct spesa {
    	struct oggetto ogg;
    	char nome_spesa[300];
    	struct spesa *next_ptr;
    };
    
    void inserisci_oggetto (struct spesa **ptrptr, struct oggetto *pogg) 
    ...
    
Devi accedere o registrarti per scrivere nel forum
3 risposte