[C] Un aiuto su una piccola cosa con allocazione dinamica
Ho un file (composto solo da lettere minuscole e spazi) da cui leggo una serie di caratteri, li manipolo e li scrivo in un altro file.
Mentre leggo questo file carattere per carattere ho bisogno di salvare le parole che sono contenute. Le parole le riconosco perchè separate dagli spazi.
NOTA: non posso usare funzioni diverse da quelle che uso per leggere il file e non posso fare modifiche sostanziali a questo codice perchè le specifiche sono molto strette.
Ho creato una struct:
struct elemento {
char *parola; //non so se un puntatore qui va bene
int ripetizioni;
struct elemento *next;
};
Diciamo che nel main ho il ciclo che scorre il file di testo:
while (lettera != EOF)
{
/*leggo una lettera*/
lettera = fgetc(source);
adesso qui devo fare che la lettera letta viene memorizzata in parola[i] e devo fare una malloc che allochi lo spazio per contenerla.
Non ricordo (e non sono neanche sicuro che si possa fare) come fare ad allocare un byte in più ad ogni ciclo se c'è una lettera da memorizzare.
Mi sapete dire come scrivere il comando?
Se faccio:
parola = (char *)malloc(sizeof(char));
ovviamente mi trovo ad allocare uno spazio per un char che è sempre quello ad ogni ciclo, io devo fare qualcosa tipo:
parola+i=(char*)malloc(sizeof(char)); con i che conta le lettere scritte fino ad ora, ma non mi funziona.
|