| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 390 人关注过本帖
标题:[求助] 如何返回一个二级指针呢?急,谢谢
只看楼主 加入收藏
g0070
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-2
收藏
 问题点数:0 回复次数:0 
[求助] 如何返回一个二级指针呢?急,谢谢
void main()
{
int k;
double (*c)[2];
……
S(256);
c=(double *[2])co(str,256,256);//老是说这里错了呢~该怎么写呢?
for(k=0;k<256;k++)
free(c[k]);
free(c);

}


double **co(double str[][2],int n,int m)
{
int k;
double (*c)[2];
double (*p)[2];
double (*q)[2];
c=(double**)malloc(sizeof(double*)*n);
for(k=0;k<1;k++)
c[k]=(double*)malloc(sizeof(double)*2);

p=(double**)malloc(sizeof(double*)*n/2);
for(k=0;k<1;k++)
p[k]=(double*)malloc(sizeof(double)*2);

q=(double**)malloc(sizeof(double*)*n/2);
for(k=0;k<1;k++)
q[k]=(double*)malloc(sizeof(double)*2);

if(n==1)
{
c[0][0]=str[0][0];
c[0][1]=str[0][1];
}
else
{
for(k=0;k<=n/2-1;k++)
{
tmp1[k][0]=str[2*k][0];
tmp1[k][1]=str[2*k][1];
tmp2[k][0]=str[2*k+1][0];
tmp2[k][1]=str[2*k+1][1];
}

p=(double *[2])co(tmp1,n/2,n/2);//这里也是,老是错……
q=(double *[2])co(tmp2,n/2,n/2);

for(k=0;k<n/2;k++)
{
c[k][0]=p[k][0]+q[k][0]*cos(2*3.14159265359*k/m)+q[k][1]

*sin(2*3.14159265359*k/m);
c[k+n/2][0]=p[k][0]-q[k][0]*cos(2*3.14159265359*k/m)-q[k]

[1]*sin(2*3.14159265359*k/m);
c[k][1]=p[k][1]-q[k][0]*sin(2*3.14159265359*k/m)+q[k][1]

*cos(2*3.14159265359*k/m);
c[k+n/2][1]=p[k][1]+q[k][0]*sin(2*3.14159265359*k/m)-q[k]

[1]*cos(2*3.14159265359*k/m);
}
}
for(k=0;k<n/2;k++)
free(p[k]);
free(p);

for(k=0;k<n/2;k++)
free(q[k]);
free(q);

return (double**)c;
}

其实就是快速付利叶。
本来用global data 搞那些矩阵。可以只有64kb,矩阵一大就不可以用了。
谢谢那位高手帮我看看阿~


多谢拉。好急得~
搜索更多相关主题的帖子: 指针 
2007-05-22 10:54
快速回复:[求助] 如何返回一个二级指针呢?急,谢谢
数据加载中...
 
   



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

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