Salve a tutti sto facendo un semplice programma devo creare un array di struct in cui devo inserire degli elementi e stamparlo cercando di creare funzioni e librerie quanto più sintetiche possibile.
La struct è composta da una stringa (descrizione) che deve essere allocata dinamicamente e un valore intero (chiave).
Il problema e che mi sono bloccato a questo punto non mi da nessun errore e non riesco a capire perchè non mi faccia inserire la stringa.
Questa è la mia libreria per la gestione degli elementi della Struct:
Queste sono le mie funzioni per la gestione degli elementi:codice:#include <iostream> #include <cstring> #include <cstdlib> using namespace std; #define N 100 struct Element{ char *info; int key; }; typedef char String [N]; void read_element(Element &); void write_element(Element &);
Questa è la mia libreria per la gestione degli elementi dell'array di struct:codice:#include "Struct_lib.h" void read_element(Element &E){ E.info=0; E.key=0; } void write_element(Element &ele){ String name; cout<<"\n Iserisci la descrizione dell'elemento :"; cin.getline(name, N-1, '\n'); ele.info=new char (strlen(name+1)); strcpy(ele.info, name); cout<<"\n Iserisci la chiave dell'elemento :"; cin>>ele.key; }
Questa è sono le mie funzioni per la gestione degli elementi della struct:codice:#include "Struct_lib.h" #define L_DIM 100 typedef Element E; typedef E List[L_DIM]; void read_list(List &, int );
QUESTO E' IL MIO MAIN:codice:#include "VettStruct_lib.h" void read_list(List &L, int size){ cout<<" Inserisci il numero degli elementi della lista: "; cin>>size; for(int i=0; i<size; i++){ read_element(L[i]); write_element(L[i]); } }
Questo è quello che mi stampa:codice:#include "VettStruct_lib.h" int main(){ List Mylist; Element MyElement; int List_size; read_list(Mylist, List_size); }
Immagine.png

Rispondi quotando