单片机C语言中如何做一个函数判断一个数组的大小?
uint16_tArray_Size(constuint8_t*array_pt){constuint8_t*pt;uint16_tsize;for(pt=array_p...
uint16_t Array_Size(const uint8_t * array_pt)
{
const uint8_t * pt;
uint16_t size;
for(pt = array_pt; *pt != NULL; pt++)
{
size++;
}
return size;
}
可string.h里面NULL被宏定义为0,这样的话显然无法正确判断数组大小,因为数组成员里出现0的可能是很大的,请问怎么改? 展开
{
const uint8_t * pt;
uint16_t size;
for(pt = array_pt; *pt != NULL; pt++)
{
size++;
}
return size;
}
可string.h里面NULL被宏定义为0,这样的话显然无法正确判断数组大小,因为数组成员里出现0的可能是很大的,请问怎么改? 展开
4个回答
展开全部
本来就是这样啊,如果你的是字符串,比如“hello,world!”,是以0x00(就是NULL或者'/0')结尾的,所以能判断出长度。但是对于非字符串的数组,就必须你自己限定长度而不能用检查0x00来确定长度了。否则就是说的那种情况。
更多追问追答
追问
您好!您的意思是不是像如下这种数组就无法判断通过写函数判断数组长度了?
例:
const uint8_t ON_STATE[] = {
0xF8,0x04,0x02,0x01,0x01,0x01,0xF1,0xF9,0x09,0x09,0xF9,0xF1,0x01,0x01,0xF9,0xF9,
};
您好!您的意思是不是像如下这种数组就无法判断通过写函数判断数组长度了?
例:
const uint8_t ON_STATE[] = {
0xF8,0x04,0x02,0x01,0x01,0x01,0xF1,0xF9,0x09,0x09,0xF9,0xF1,0x01,0x01,0xF9,0xF9,
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-04-09
展开全部
不会 这个啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*pt != '/0'
更多追问追答
追问
您好!我的数组成员都是数字的,不是字符串型的,这样的话您说的方法恐怕不行吧?
追答
那你检测空格行不行呢,既然是数字,中间应该不会出现空格的
*pt != ' ';双引号中间是一个空格
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询