Punteros que apuntan a punteros
Publicado por David (2 intervenciones) el 06/05/2010 13:46:25
Duda sobre punteros, estoy haciendo un programa, y quiero declarar un espacio en memoria que sea una matriz, para eso, necesito doble punteros.
El espacio en memoria es introducido en un fichero, y a partir de esos valores, se crea.
No se que ocurre pero no funciona, me da error de segmentacion, haber si alguien supiese porqué, gracias.
Aqui va el codigo:
int main() {
char c;
int i, j, gen, fil, colum, cont1;
FILE *f;
f = fopen("entrada.txt","r");
//Sacamos las filas y las columnas que tiene que tener la matriz del fichero.
fscanf(f,"%d %d\n",&fil, &colum);
//creamos espacio para la matriz (doble punteros)
char **matriz= (char**) malloc(fil* sizeof(char*));
for(cont1=0; cont1<fil;cont1++){
matriz[fil]=(char*)malloc(colum*sizeof(char));
}
//iniciamos traspaso de matriz txt a la matriz en memoria.
for(i=0; i<fil;i++){
for(j=0;j<colum;j++){
fscanf(f,"%c", &c);
matriz[i][j]=c;
}
}
}
El espacio en memoria es introducido en un fichero, y a partir de esos valores, se crea.
No se que ocurre pero no funciona, me da error de segmentacion, haber si alguien supiese porqué, gracias.
Aqui va el codigo:
int main() {
char c;
int i, j, gen, fil, colum, cont1;
FILE *f;
f = fopen("entrada.txt","r");
//Sacamos las filas y las columnas que tiene que tener la matriz del fichero.
fscanf(f,"%d %d\n",&fil, &colum);
//creamos espacio para la matriz (doble punteros)
char **matriz= (char**) malloc(fil* sizeof(char*));
for(cont1=0; cont1<fil;cont1++){
matriz[fil]=(char*)malloc(colum*sizeof(char));
}
//iniciamos traspaso de matriz txt a la matriz en memoria.
for(i=0; i<fil;i++){
for(j=0;j<colum;j++){
fscanf(f,"%c", &c);
matriz[i][j]=c;
}
}
}
Valora esta pregunta
0