Ciao,
ho un problema con questo codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define W 99
#define WL 20
int main()
{
FILE *f1, *f2;
int i;
char c;
char regola[WL];
char *regole[W][WL];
if(((f1=fopen("regole.txt", "r")) && (f2=fopen("compresso.txt", "r")))==0) {
printf("Errore apertura file");
exit(EXIT_FAILURE);
}
while(fscanf(f1, "%d %s", &i, regola)==2) strcpy(regole[i-1], regola);
fclose(f1);
if((f1=fopen("decompresso.txt", "a"))==NULL) {
printf("Errore creazione file");
exit(EXIT_FAILURE);
}
while((c=fgetc(f2))!=EOF) {
if(c=='$') {
if(fscanf(f2, "%d", &i)==1 && i>0 && i<=W) fprintf(f1, "%s", regole[i-1]);
else fputc(c, f1);
} else putc(c, f1);
}
fclose(f1);
fclose(f2);
return 0;
}
Così com'è funziona, ma se provo a sostituire la matrice regole[W][WL] con il vettore di stringhe *regole[W] il programma si blocca.
Perché?
Grazie anticipatamente.