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