单片机C语言中如何做一个函数判断一个数组的大小?

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的可能是很大的,请问怎么改?
可以敬岁在函数中借用sizeof运算符,来获取数组大小亮姿睁。

1 获取数组a整体占用空间可以使用
sizeof(a)
该册派值为这个数组占用的总内存值,单位为字节。

2 获取数组元素个数可以用
sizeof(a)/sizeof(a[0])
该值为数组开辟的元素个数。
本来就是这样缺桐啊,如果你的是字符串亩扮中,比如“hello,world!”,是以0x00(就是NULL或者'/0')结尾的,所以能判断出迅山长度。但是对于非字符串的数组,就必须你自己限定长度而不能用检查0x00来确定长度了。否则就是说的那种情况。
不会 这个啊
*pt != '/0'