[讨论] 数组运算

maq9627   2008-5-29 07:42 楼主


初学DSP,用的是6713,上午编了一个简单程序,两数组相加,具体程序如下,
在这里我只是把最后两数组的数据返回,也就是应该返回30,但用watch看是时始终得到的是11,不知为何?如果我想返回一个数组的值,不知怎么弄?
恳请大哥解或下
#include <stdio.h>
int b[10]={1,2,3,4,5,6,7,8,9,10};
int a[10]={11,12,13,14,15,16,17,18,19,20};
volatile int x=0;
void main()
  {
   x=sum(a,b,10);
   while(1)
   {}
  }
  
  int sum(int *restrict m,int *restrict n,int count)
   {
    volatile int i;
    int y=0;
    for(i=0;i<=count;i++)
     {
      y=m+n;
     }
     return y;
     }
本帖最后由 dontium 于 2015-1-23 13:42 编辑

回复评论 (3)

sum函数有错,C中的数组索引取值范围是0~count-1而非0~count,正确的for循环语句是
for(i = 0; i < count; i++)
点赞  2008-5-29 07:50
你说得很对,太谢谢你啊!这样就可以了,但是我想如果返回的是数组,也就是一堆数,那该怎么呢?
点赞  2008-5-29 08:10

LZ,是不是只反回11啊

首先谢谢大家的回答,对啊
原来是一直返回11,按照dsp2812所说的,是将y用指针来返回吗?
还是????
点赞  2008-5-29 08:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复