devilchan
27-01-2005, 00:03
Ragazzi sono nuovo iscritto al sito, ho bisogno di voi esperti ora,
Entro domani mattina ho bisogno di sapere come DIAVOLO si indicizza una matrice dinamica di stringhe in c.
Vi speigo meglio, io ho
char ***mat =(char***)calloc(riga,sizeof (char**));
for (i = 0; i < riga ; i++)
mat[i] = (char**)calloc(col,sizeof(char*)) ;
che e la mia matrice ed poi ho:
char *parola=(char *)malloc(30*sizeof(char));
che contiene una stringa presa da un file di testo, ora voglio poter scrivere
strcpy(mat[i][j],parola);
ma non lo posso fare perchè da quanto ne ho capito io non ho allocato lo spazio necessario per copiare la stringa.
La domanda è come si fa sta BENEDETTA allocazione dello spazio necessario, cosa devo scrivere?
PER I PUI VOLENTEROSI ;)
La tracci dell'esercizio da fare è :
Progettare ed implementare un programma ‘C’ che realizzi i seguenti obiettivi:
1. Leggere e memorizzare il contenuto di un file descrivente un albero binario ed organizzato come sequenza di linee di testo di lunghezza variabile e terminate da un carattere \newline.
Allo scopo si consideri che ognuna delle suddette linee referenzierà un nodo dell’albero ed è strutturata come una sequenza di stringhe separate da uno o più spazi. La prima e la seconda stringa, presenti in ogni linea, vanno interpretate – rispettivamente – come un intero positivo identificatore univoco del nodo e come descrizione alfanumerica del nodo stesso.
Ulteriori stringhe (max 2) andranno interpretate come interi identificanti il figlio sinistro e quello destro del nodo. In particolare, l’eventuale figlio sinistro sarà riconoscibile per il segno negativo e, per un corretto riferimento, sarà ovviamente necessario considerarne il valore assoluto.
[
Si consideri il file preprocessato così da essere sicuri che risponda perfettamente alle specifiche ipotizzate dalla traccia. Non sono quindi richieste procedure per il controllo
di errori e/o anomalie di input.
Attenzione! I nodi possono però presentarsi in ordine qualsiasi, così che è necessario pensare a strutture di supporto che consentano - via via che si leggono le linee del file – di memorizzare e tener traccia dei nodi (per esempio con un array o una lista) così da poter istanziare i link opportuni.
]
Ma dubito che avrete voglia di fare tutto, vi prego aiutatemi anke solo con la prima parte.
Entro domani mattina ho bisogno di sapere come DIAVOLO si indicizza una matrice dinamica di stringhe in c.
Vi speigo meglio, io ho
char ***mat =(char***)calloc(riga,sizeof (char**));
for (i = 0; i < riga ; i++)
mat[i] = (char**)calloc(col,sizeof(char*)) ;
che e la mia matrice ed poi ho:
char *parola=(char *)malloc(30*sizeof(char));
che contiene una stringa presa da un file di testo, ora voglio poter scrivere
strcpy(mat[i][j],parola);
ma non lo posso fare perchè da quanto ne ho capito io non ho allocato lo spazio necessario per copiare la stringa.
La domanda è come si fa sta BENEDETTA allocazione dello spazio necessario, cosa devo scrivere?
PER I PUI VOLENTEROSI ;)
La tracci dell'esercizio da fare è :
Progettare ed implementare un programma ‘C’ che realizzi i seguenti obiettivi:
1. Leggere e memorizzare il contenuto di un file descrivente un albero binario ed organizzato come sequenza di linee di testo di lunghezza variabile e terminate da un carattere \newline.
Allo scopo si consideri che ognuna delle suddette linee referenzierà un nodo dell’albero ed è strutturata come una sequenza di stringhe separate da uno o più spazi. La prima e la seconda stringa, presenti in ogni linea, vanno interpretate – rispettivamente – come un intero positivo identificatore univoco del nodo e come descrizione alfanumerica del nodo stesso.
Ulteriori stringhe (max 2) andranno interpretate come interi identificanti il figlio sinistro e quello destro del nodo. In particolare, l’eventuale figlio sinistro sarà riconoscibile per il segno negativo e, per un corretto riferimento, sarà ovviamente necessario considerarne il valore assoluto.
[
Si consideri il file preprocessato così da essere sicuri che risponda perfettamente alle specifiche ipotizzate dalla traccia. Non sono quindi richieste procedure per il controllo
di errori e/o anomalie di input.
Attenzione! I nodi possono però presentarsi in ordine qualsiasi, così che è necessario pensare a strutture di supporto che consentano - via via che si leggono le linee del file – di memorizzare e tener traccia dei nodi (per esempio con un array o una lista) così da poter istanziare i link opportuni.
]
Ma dubito che avrete voglia di fare tutto, vi prego aiutatemi anke solo con la prima parte.