Si me pudieran decir donde tengo mi error se los agradeceria :p
Codigo:
Estructura
Código
struct Pagina { char *Instruccion; char *register1; char *register2; };
Código
int *Escribir_swap(const char *PCB, TMS *TABLE_TMS, Pagina **Paginas, int dk){ /*dk numero de marcos a utilizar el proceso*/ FILE *A; char exeption[5] = " \n\t,"; char LINE[LONG_MAX_LINE]; int TAM = 0, flag = 0; /*para controlar si creo una nueva pagina en la tms*/ int *pos = (int *)malloc(dk*sizeof(int)); /* Vamos guardando las posiciones que ocupara el proceso en la swap*/ int i = 0, j = 0, num_page = 0; for(i = 0; i < MARCOS; i++){ if(enable_pos[i] == 1){ for(j = 0; j < PAGINAS; j++){ flag = 0; break; } else{ (Paginas[i][j].Instruccion = strdup(Get_I(TAM, PCB, LINE, exeption, A))); (Paginas[i][j].register1 = strdup(Get_R(TAM, PCB, LINE, exeption, A, 1))); (Paginas[i][j].register2 = strdup(Get_R(TAM, PCB, LINE, exeption, A, 2))); TABLE_TMS[i].NOM_ARCHIVO = PCB; /*nombre del proceso en la tms*/ TABLE_TMS[i].num_page = num_page; /*el numero de pagina en la tms*/ enable_pos[i] = 0; /*activamos bandera en esa posicion para indicar que esta ocupada*/ pos[num_page] = i; /*llenamos el vector que contiene la posicion de las paginas en la swap*/ flag = 1; TAM++; } } } if (flag == 1 & num_page <= dk) /* si creo la nueva pagina*/ { num_page++; /*creamos el nuevo indice para una nueva pagina*/ } } return pos; }