| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 457 人关注过本帖
标题:关于求数组长度
取消只看楼主 加入收藏
初级学子
Rank: 1
来 自:山东青岛
等 级:新手上路
帖 子:3
专家分:7
注 册:2013-5-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
关于求数组长度
先看两个小程序:
第一个如下:
#include <stdio.h>
void main()
{
    float a[6]={1,2,3,4,5,6};
    int b;
    b=sizeof(a)/sizeof(a[0]);
    printf("%d\n",b);
}
第二个如下:
#include <stdio.h>
int getlength(float *a)
{
    int length;
    if(a==NULL)
        return 0;
    length=sizeof(a)/sizeof(a[0]);
    return length;
}
void main()
{
    float a[6]={1,2,3,4,5,6};
    int b;
    b=getlength(a);
    printf("%d\n",b);
}
对于第一个程序输出结果为6,第二个输出为1,也就是说用sizeof(a)/sizeof(a[0])来求数组的长度时,在主函数中可以,而如果把a当一个参数传到一个函数中求出的结果永远是1。我在网上查了一下,说把一个数组a当参数传到一个函数里面之后,它就变成一个指针了,不再具有数组的特性。现在我要编辑一个函数:float *GetAmplsOfATrc(float *trcData)  {...}   trcData是一个数组名,由外界传进来,现在在这个函数里我不仅要读取trcData的数据,还需要定义一些和trcData长度相同的一些数组,因此需要求trcData的长度。用上面第二个程序中的方法来求显然是错的,那么这个问题该怎么解决?求各路大神解答
2015-11-29 21:41
初级学子
Rank: 1
来 自:山东青岛
等 级:新手上路
帖 子:3
专家分:7
注 册:2013-5-30
收藏
得分:0 
回复 3楼 追公交的少年
上面那句话就是你说的那个意思。现在我只是做程序的一部分,别人给的接口就一个数组名,没提供数组长度,所以很头疼啊。
2015-11-30 08:16
快速回复:关于求数组长度
数据加载中...
 
   



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

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