C++返回二维数组的有关问题
C++返回二维数组的问题
本帖最后由 ratzippo 于 2012-12-06 18:12:07 编辑 大家好,我想问一个关于C++函数返回二维数组的问题,
比如:
我想写一个public的函数来返回这个数组的指针,函数如下:
之后在另外一个类里,我这样调用了这个public函数:
------最佳解决方案--------------------
或者最好是这样
------其他解决方案--------------------
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,这个指针好像没有返回来,问题在哪里啊?怎么样改正?
}
越界了
------其他解决方案--------------------
錯誤不少,代碼都貼上來吧..
本帖最后由 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,这个指针好像没有返回来,问题在哪里啊?怎么样改正?
}
越界了
------其他解决方案--------------------
錯誤不少,代碼都貼上來吧..