ciao a tutti,
sto facendo questo esercizio sull'allocazione dinamica. Ecco la traccia:
Scrivere un programma che gestisce un array di record allocato
dinamicamente. Il record è costituito da un campo "chiave" e da un campo"
valore". Il programma effettua su tale struttura dati le seguenti
operazioni:



1) creazione della struttura

2) inserimento dei dati

3) stampa dei dati

4) distruzione della struttura



Organizzare il programma sui seguenti file:

1. Tabella.h: contiene la dichiarazione della struttura "Record", la
dichiarazione di un tipo "Tabella" puntatore a "Record" e i prototipi delle
4 funzioni che implementano rispettivamente le 4 funzionalità sopra
elencate.

2. Tabella.cpp: Contiene l'implementazione delle 4 funzioni

3. Main.h: Contiene il programma "main" che dichiara una variabile
"tabella" di tipo Tabella, una variabile intera "num_entry" che rappresenta
il numero di elementi dell'array e chiama le funzioni

Ecco il mio file tabella.h:



struct Record {
char chiave;
int valore;};



typedef Record* tabella;



sull'ultima riga non sono sicuro...:-((



ecco il mio codice per l'inserimento dei dati (non ho ancora fatto la
funzione, per ora è tutto nel main):



#include <iostream>
#include "tabella.h"
#include <cstdlib>
int main(int argc, char *argv[])
{ int n;
tabella tab;
cout<<"Creazione struttura";
cout<<"Quante entry?";
cin>>n;
tabella a = new Record[n];
for(int i=0; i<n; i++){
cout<<"Inserisci la entry di posizione "<<i<<"\n";
cout<<"chiave?";
char id;
cin>>id;
tab->chiave = new char;
strcpy(tab->chiave, id);
cout<<"valore?";
char val;
cin>>val;
tab->valore = new char;
strcpy(tab->valore, val);

}
return 0;
}



quando compilo ricevo 6 errori:

16 main.cpp: assignment to `char' from `char *' lacks a cast

17 main.cpp: passing `char' to argument 1 of `strcpy(char *, const char *)'
lacks a cast

17 main.cpp: passing `char' to argument 2 of `strcpy(char *, const char *)'
lacks a cast

21 main.cpp: assignment to `int' from `char *' lacks a cast

22 main.cpp: passing `int' to argument 1 of `strcpy(char *, const char *)'
lacks a cast

22 main.cpp: passing `char' to argument 2 of `strcpy(char *, const char *)'
lacks a cast


dove sbaglio???

ciao!