(Solucionado)Fallo de segmentacion en C

Imagen de karen.aguilar.a
0 puntos

Hola a tod@s, tengo un problema que jamàs habìa visto y es que cuando corro mi programa me ejecuta perfecto una parte pero al final me tira un error de segmentacion, lei un poco acerca de que se trata pero no sé que lo genera en mi programa. Lo unico que trato de hacer es una llamada al sistema leyendo un archivo y necesito guardarlo en una matriz ya que despues debo de poder ordenar los datos del archivo(informacion sobre libros) ya sea por su ISBN o por el nombre del autor, al parecer el problema surge cuando trato de leer el contenido de la matriz, pero no tengo idea porque.

adjunto mi código, talvés alguien me puede ayudar, se los agradeceria muchisimo

#include 
#include 
#include 
#include 
#include 
int main (int argc, char *argv[])
{
        struct stat estado;    
        char capturaDeLineas[128];
        int archivo;
        int numeroLineas;
        int filas, columnas, h, c;
        char *ptrCapturaDeLineas;
        char *tablaInformacion[100][100];  //las dimensiones no serán estaticas
        /* Inicio de Comprobación del número de argumentos */
        if (argc != 2) {
                printf ("Error\n Sintaxis: %s archivo posicionEnArchivo \n", argv[0]);
                exit(1);
        }
         /* Fin de Comprobación del número de argumentos */

        /* Inicio de Apertura del archivo */
        if ((archivo = open (argv[1], O_RDONLY)) == -1) {
                perror ("Error al abrir el archivo");
                exit(1);
        }
         /* Inicio de Apertura del archivo */

        if(fstat(archivo,&estado)==-1){
                perror ("Error al obtener estado del archivo");
                exit(1);
        }

        numeroLineas=estado.st_size/128;

        for(filas=0;filas


Imagen de karen.aguilar.a
+1
0
-1

No escribo todo el código, pero básicamente mi error era relacionado con punteros; en este pedazo lo que falta es la impresion del arreglo.
Debo agregar que mi código no esta optimizado, asi que decidi postear este asi como esta, porque que talvez le sirva a alguien.

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
int main (int argc, char *argv[])
{
        struct stat estado;
        const int TOTAL_COLUMNAS=6;
        char capturaDeLineas[128];
        int archivo;
        int numeroLineas;
        int filas, h, c,contadorColumnas, i, k, j=0;
        char *ptrCapturaDeLineas;
        char *cpyCapturaDeLineas;
        char *tablaInformacion[100][TOTAL_COLUMNAS];
        char *temporal;
        int columnaCambio=0;

        if(argc>4){
            perror ("Numero de parametros incorrecto");
                exit(1);
        }
        if ((archivo = open (argv[1], O_RDONLY)) == -1) {
                perror ("Error de apertura en el archivo");
                exit(1);
        }
        if(fstat(archivo,&estado)==-1){
                perror ("Error al obtener estado del archivo");
                exit(1);
        }
        numeroLineas=estado.st_size/128;
        printf("Archivo Original\n");
        for(filas=0;filas0){
                            for(k=0;k<6;k++){
                                temporal=tablaInformacion[j][k];
                                tablaInformacion[j][k]=tablaInformacion[j+1][k];
                                tablaInformacion[j+1][k]=temporal;
                            }
                        }
                    }
                }
    }
+1
0
-1