-m32标志运行时代码生成分段错误

时间:2019-04-08 12:43:26

标签: c

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

0 个答案:

没有答案