C++ 使用動態二維數組參數

這個問題再C#上面不存在…網上搜集的

二維數組做參數傳遞的時候,可以如下聲明:
void func(int a[][3]);
但是有時碰到的情況是,數組的位數是動態生成的

解決方案:直接傳int指針,不與那些複雜的多維數組,多重指針糾纏,模擬二維數組

void func(int *p, int n, int m)
{
  for(int i=0; i < n; i++)
  for(int j=0; j < m; j++)
  p[i*m+j]=i+j; 
}
void main(){
  int a[2][3];
  int *p = &a[0][0];
  func( p, 2, 3);
  cout << a[1][2] <<endl;
  cout<<"end"<<endl;
  return;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章