找回密码
 注册
查看: 1468|回复: 8

C语言的指针问题!

[复制链接]
发表于 2006-3-30 20:07:04 | 显示全部楼层 |阅读模式
我是想把一个矩阵作为参数传进函数的,而且每次调用函数时,矩阵大小是不一样的!我该怎样做呢?
试了指针的方法,但总不对!
请高手给个指教!
谢谢!
发表于 2006-3-30 22:36:45 | 显示全部楼层
函数声明成指针

例如
foo(int* p, int size);

然后使用时
int foo_var[108];

foo( foo_var, 10;
回复

使用道具 举报

发表于 2006-3-31 12:57:56 | 显示全部楼层
楼主把代码放出来看看,看看你是怎么用的。
回复

使用道具 举报

 楼主| 发表于 2006-3-31 13:31:46 | 显示全部楼层
好的!谢谢大家支持!(这是个示意的)
code:
void delisch(float **image,int length);

int main()
{     int length=4;
      float image1[4][4]={{1,2,33,4},{5,41,7,8},{9,10,134,12}{13,142,15,16}};     //但下次就可那能是16×16的!
          delisch(image1,4);...........

}
      void delisch(float **image,int length)
{
    for(i=0;i<T;i++){
        for(j=0;j<N;j++){
                   f1[j]=image[2*i][j];                                     //the odd of image
                           f2[j]=image[2*i+1][j];                       //the even of iamge

}
不知我说明白了没?意思就是每次调用delisch这个函数,都对一个矩阵进行处理(我是图像滤噪),但这个矩阵大小是不定的!所以想用指针,但不知怎用好!谢谢帮助!
回复

使用道具 举报

发表于 2006-3-31 13:38:43 | 显示全部楼层
楼主这样子用有错误吗?
T,N都什么。
回复

使用道具 举报

发表于 2006-3-31 14:49:07 | 显示全部楼层
想想main.
main(int argc, char *argv[])
argv就相当于char的矩阵,而且是行列不相等的矩阵
回复

使用道具 举报

发表于 2006-3-31 18:01:18 | 显示全部楼层
把行和列也传进去不就得了。
回复

使用道具 举报

 楼主| 发表于 2006-3-31 19:48:48 | 显示全部楼层
T和N我在这里没写,不要在意!
在程序中我是这样写的,felisch(image,length),但是总错误,说类型匹配错误,所以认为image这个二维矩阵不可以直接带进函数,和**image不匹配,所以设了一个指针数组,
int *point[length];
for(i=0;i<length;i++){
    point=image;
}
  delisch(point,length)    //方阵
然后在函数里就可以这样做,
image[j]..........


我自己看别人资料和自己调试出来的,结果是正确的,可能是错误还没出来吧!
请高手给看一下! 说说!大家学习!

谢谢
www.linuxfans.org is my home page!
thank you!
回复

使用道具 举报

发表于 2006-4-3 23:07:24 | 显示全部楼层
其实一个指针就是一个地址。向这个方向想想你就知道了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-7 02:50 , Processed in 0.049147 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表