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:
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 &);
Queste sono le mie funzioni per la gestione degli elementi:
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 è la mia libreria per la gestione degli elementi dell'array di struct:
codice:
#include "Struct_lib.h"
#define L_DIM 100
typedef Element E;
typedef E List[L_DIM];
void read_list(List &, int );
Questa è sono le mie funzioni per la gestione degli elementi della struct:
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 E' IL MIO MAIN:
codice:
#include "VettStruct_lib.h"
int main(){
List Mylist;
Element MyElement;
int List_size;
read_list(Mylist, List_size);
}
Questo è quello che mi stampa:
Immagine.png