我有一个可以在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;
}
}
}