C++返回二维数组的有关问题

C++返回二维数组的问题
本帖最后由 ratzippo 于 2012-12-06 18:12:07 编辑 大家好,我想问一个关于C++函数返回二维数组的问题,

比如:

struct Building
{
   int number;
   int room
};

struct Building building[3][3] ={/*初始化所有元素*/};

我想写一个public的函数来返回这个数组的指针,函数如下:

bool getArrayPointer(struct Building * build)
{
   build = &building[0][0];
   if(build == NULL)
   {
       return false;
   }
   return true;  
}


之后在另外一个类里,我这样调用了这个public函数:
struct Building * b = NULL;
if(getArrayPointer())
{
   for(int i; i< 5*5; i++)
   {
      printf("building number is %u\n", matrix[i].number);//在这里函数aborted,这个指针好像没有返回来,问题在哪里啊?怎么样改正?
   }
}


------最佳解决方案--------------------
bool getArrayPointer(struct Building **build)

或者最好是这样
bool getArrayPointer(struct Building (*build)[3])

------其他解决方案--------------------
bool getArrayPointer(struct Building ** build)
{
   *build = &building[0][0];
   if(build == NULL)
   {
       return false;
   }
   return true;  
}


struct Building * b = NULL;
if(getArrayPointer(&b)) //这样b就指向了building
{
   for(int i; i< 5*5; i++)
   {
      printf("building number is %u\n", matrix[i].number);
   }
}
------其他解决方案--------------------
struct Building building[3][3] ={/*初始化所有元素*/}; 

for(int i; i< 5*5; i++) 
   { 
      printf("building number is %u\n", matrix[i].number);//在这里函数aborted,这个指针好像没有返回来,问题在哪里啊?怎么样改正? 
   } 

越界了
------其他解决方案--------------------
錯誤不少,代碼都貼上來吧..