elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Llenar matriz de estructuras con punteros en c en: 12 Julio 2018, 03:54 am
Estoy intentado llenar una matriz de estructuras usando punteros, pero solo lo hace para la primera corrida de los ciclos despues me manda un fallo de segmento, habia comenzado a escribirlo en windows y corria bien el llenado lo hacia pero ahora lo estoy corriendo en linux y no se que pasa.

Si me pudieran decir donde tengo mi error se los agradeceria :p


Codigo:
Estructura
Código
  1. struct Pagina
  2. {
  3.    char *Instruccion;
  4.    char *register1;
  5.    char *register2;
  6. };



Código
  1. int *Escribir_swap(const char *PCB,  TMS *TABLE_TMS, Pagina **Paginas, int dk){ /*dk numero de marcos a utilizar el proceso*/
  2.    FILE *A;
  3.    char exeption[5] = " \n\t,";
  4.    char LINE[LONG_MAX_LINE];
  5.    int TAM = 0, flag = 0; /*para controlar si creo una nueva pagina en la tms*/
  6.    int *pos = (int *)malloc(dk*sizeof(int)); /* Vamos guardando las posiciones que ocupara el proceso en la swap*/
  7.    int i = 0, j = 0, num_page = 0;
  8.  
  9.    for(i = 0; i < MARCOS; i++){
  10.        if(enable_pos[i] == 1){
  11.            for(j = 0; j < PAGINAS; j++){
  12.                if( strcmp(Get_I(TAM, PCB, LINE, exeption, A),  "END") == 0 ){
  13.                    flag = 0;
  14.                    break;
  15.                 }
  16.                 else{
  17.                    (Paginas[i][j].Instruccion = strdup(Get_I(TAM, PCB, LINE, exeption, A)));
  18.                    (Paginas[i][j].register1 = strdup(Get_R(TAM, PCB, LINE, exeption, A, 1)));
  19.                    (Paginas[i][j].register2 = strdup(Get_R(TAM, PCB, LINE, exeption, A, 2)));
  20.  
  21.                    TABLE_TMS[i].NOM_ARCHIVO = PCB; /*nombre del proceso en la tms*/
  22.                    TABLE_TMS[i].num_page = num_page;  /*el numero de pagina en la tms*/
  23.                    enable_pos[i] = 0; /*activamos bandera en esa posicion para indicar que esta ocupada*/
  24.                    pos[num_page] = i; /*llenamos el vector que contiene la posicion de las paginas en la swap*/
  25.                    flag = 1;
  26.                    TAM++;
  27.                }
  28.            }
  29.        }
  30.        if (flag == 1 & num_page <= dk) /* si creo la nueva pagina*/
  31.         {
  32.             num_page++;  /*creamos el nuevo indice para una nueva pagina*/
  33.         }
  34.    }
  35.    return pos;
  36. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines