0

I was trying to do this function in C but for some reason is giving me "Illegal instruction: 4"... From what I looked up it may be because I'm using iOs, but still I'm using VSCode and not a project so I have no idea how to correct it.

The function is the following:

void divideSocios(void){
int i;
for (i = 0; i < MAXFILA || socios[i].next != -1; i++){
    if (socios[i].sc.pago >= 50){            

        if (semDiv[0].next == 0){
            semDiv[0].next = -1;
            semDiv[0].sc.id = socios[i].sc.id;
            semDiv[0].sc.pago = socios[i].sc.pago;
            strcpy(semDiv[0].sc.nome, socios[i].sc.nome);
        }

        else{

            for (; i < MAXFILA && semDiv[i].next != -1; i++);

            semDiv[i-1].next = i;
            semDiv[i].next = -1;
            semDiv[i].sc.pago = socios[i].sc.pago;
            semDiv[i].sc.id = socios[i].sc.id;  
            strcpy(semDiv[i].sc.nome, socios[i].sc.nome);
        }

    } else {

        if (comDiv[0].next == 0){
            comDiv[0].next = -1;
            comDiv[0].sc.id = socios[i].sc.id;
            comDiv[0].sc.pago = socios[i].sc.pago;
            strcpy(comDiv[0].sc.nome, socios[i].sc.nome);
        }

        else{

            for (; i < MAXFILA && comDiv[i].next != -1; i++); 

            comDiv[i-1].next = i;
            comDiv[i].next = -1;
            comDiv[i].sc.pago = socios[i].sc.pago;
            comDiv[i].sc.id = socios[i].sc.id;  
            strcpy(comDiv[i].sc.nome, socios[i].sc.nome);
        }

    }
}

}

I basically have 3 different linked lists by matrix, each node with a struct and the index of the current node, and depending on the "pago" atribute from the struct of the node I want to separate them from the original list between the other 2.

0 Answers0