У меня есть функция, которая отлично работает в 64-битном адресном пространстве, но при компиляции с флагом -m32 выдает ошибку сегментации. Я понятия не имею, почему это может происходить. Любая помощь приветствуется.
int* getNextVPage(int n){
int i; int cont = 0; int x; int y;
for(i = 0; i < PD_SIZE; i++){
int j;
for( j = 0; j < PT_SIZE; j++)
if(vBit[i][j] == 0){
if(cont == 0){x = i; y = j;} // finds n continuous free pages and returns the first one in the the sequence
cont++;
if(cont == n){
int l;
for(l = 0; l < n; l++){
vBit[x][y+l] = 1;
}
int* ret = (int*) malloc(2*sizeof(int)); ret[0] = x; ret[1] = y;
return ret;
}
}
else{
cont = 0;
}
}
}