| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 17705 人关注过本帖
标题:C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
只看楼主 加入收藏
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
 问题点数:0 回复次数:53 
C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
在C++中,如果我的函数想返回一张表,这张表是二维的。应该怎么返回。如果我想用一个指针指向一个二维数组,这个指针应该怎么定义。
例如
int functionA();//我想使这个函数返回一个二维数组,函数这么申明行么?
void main()
{
int a[10][10]={0},*p,b[10][10];
  p=a;//这样申明在visual c++6的编译器中是无法通过的。
       //如果我想用一个指针指向这个数组,并操作他,应该怎么办?
   b=functionA();//使得A返回一个二维数组,这样做也是在visual c++6的编译器中是无法通过的。正确做法因该是怎样的?
}
int functionA()
{int temp[10][10]={0};
   return temp;
}

[[italic] 本帖最后由 VanHorn 于 2008-1-9 11:17 编辑 [/italic]]
搜索更多相关主题的帖子: 指针 函数 
2008-01-08 10:55
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
经典的严重错误
2008-01-08 11:02
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
你写个返回一维数组的来看看
2008-01-08 11:07
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
版主,那正确的做法应该是怎样的啊?
2008-01-08 11:07
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
你写个返回一维数组的来看看??
2008-01-08 11:13
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
我写一个一维的也不对啊。我就不懂怎么返回一个数组。请版主不吝赐教。
以前的函数都使用的是void 型返回的。没在意这个问题。
2008-01-08 11:14
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
反正我返回数组就是错的,如果说要返回一个一维数组的话,直接返回一维数组也是错的,除非返回一个指针,例如
int *functionA();
void main()
{
int a[10]={0},*p1;
 
      
   p1=functionA();
   a=p1;//如果没有这行,编译是正确的。有了这行,编译就是错的,但是没有这行,我还是没法返回一个数组。

}
int *functionA()
{int temp[10]={0},*p2;
   p2=temp;
   return p2;
}



对于上面的错误,我只能这么修改:



int *functionA();
void main()
{
int a[10]={0},*p1,i;
 
      
   p1=functionA();
   for(i=0;i<10;i++)//好麻烦啊。
   {a[i]=*(p1+i);}


}
int *functionA()
{int temp[10]={0},*p2;
   p2=temp;
   return p2;
}

这样编译是正确的,那么在C++中就没有返回数组的说法吗?如果没有,我要使用一个二维数组,指针应该怎么指?

[[italic] 本帖最后由 VanHorn 于 2008-1-9 11:17 编辑 [/italic]]
2008-01-08 11:27
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
你说对了,根本没有返回数组的方法,你所使用的方法是初学者犯的严重错误之一
2008-01-08 12:03
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 


还是从C学起吧

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-01-08 12:22
wch27149
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-10-24
收藏
得分:0 
没有返回数组的方法?那这个程序是怎么返回一维数祖的?
//change the content of an array using a function
#include <iostream>
using namespace std;

void cube(int* n, int num);

int main(){
int i, nums[10];

for (i=0;i<10;i++) nums[i]=i+1;
cout<<"Orangial content:";
for (i=0;i<10;i++) cout<<nums[i]<<' ';
cout<<'\n';

cube(nums,10);

cout<<"Altered content: ";

for(i=0;i<10;i++) cout<<nums[i]<<' ';

return 0;
}

void cube(int* n,int num){
while(num){
*n=*n**n**n;
num--;
n++;
}
}

我叫wch,编号27149
感谢little monkey同学。
2008-01-08 15:16
快速回复:C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018639 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved