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!

Rispondi quotando