很弱的问题,大家快来回答问题将分呀!!!!!!

happy1978 2002-05-18 04:15:22
double *A= new double[w * h];
double *F = new double[w * h];
上面是A和F的定义,我想把F[]的数值给A[],下边的代码怎么错了???
for(i = 0; i < h; i++)
{
// 列
for(j = 0; j < w; j++)
{
//把图像变换后的频域值保存
A[i*h+j]=F[i*h+j];
}
}
我调试后发现仅仅把F指向的第一个双精读数给了A,
并没有把F指向的数组给了A
这是怎么回事呀!!!!!!!1
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
manwwd 2002-05-18
  • 打赏
  • 举报
回复
对A,F要初始化
for(int i = 0;i<w * h;i++)
{
A[i] = F[i] = 0;
}
michael_bo 2002-05-18
  • 打赏
  • 举报
回复
你是分配的w*h个 double型指针,
指针的付值应当为
*A[i*h+j]=*F[i*h+j]
所以whshunhui的批注是对的。
wushunhui 2002-05-18
  • 打赏
  • 举报
回复
把指针和分配空间分开来试试!这样!
double *f,*a;
f=new double[h*w];
a=new double[h*w];
中间的循环体改成:
A[i*h+j]=F[i*h+j]应该为:A[i*w+j]=F[i*w+j];
这样应该可以!
wushunhui 2002-05-18
  • 打赏
  • 举报
回复
bluegirl2003 2002-05-18
  • 打赏
  • 举报
回复
跟踪调试看看.
为什么不直接用:
for(int i=0;i<w*h;++i)A[i]=F[i];


bluegirl2003 2002-05-18
  • 打赏
  • 举报
回复
h和w 分别是什么?
happy1978 2002-05-18
  • 打赏
  • 举报
回复
我试了,不行
还有没有好方法呀??????
sealaugh32 2002-05-18
  • 打赏
  • 举报
回复
中间的循环体 A[i*h+j]=F[i*h+j]应该为:A[i*w+j]=F[i*w+j],这样差不多吧!

4,505

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧