传递2d数组作为指向c ++指针的指针给出了分段错误

时间:2016-03-28 11:53:23

标签: c++ arrays pointers

当我传递int matrix [3] [3] int函数rotateMatrix它工作正常,但当我传递int **程序崩溃..我是一个指针的新手plz看看我的代码..谢谢提前

  #include<iostream>
   using namespace std;

  int** rotateMatrix(int** matrix,int m,int n){
    int** temp=new int*[m];
     for(int i=0;i<n;i++){
      temp[i]=new int[n];
    }

    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            temp[i][j]=matrix[m-1-j][i];

        }

     } 
    return temp;
  }

     int main(){
         int matrix[3][3]={ {2,1,3},
                          {3,4,5},
                          {6,9,7}
                         };


    int** res=rotateMatrix((int**)matrix,3,3);

        for(int i=0;i<3;i++){
          for(int j=0;j<3;j++){
              cout<<res[i][j]<<" ";
           }
           cout<<endl;
       }

      return 0;
  }

0 个答案:

没有答案