如何使用sizeof获取指针指向数组的长度
一般可以直接使用sizeof加数组名获取数组长度,但是封装为函数后,一般使用指针来传递数组值,但在函数体内使用sizeof指针是不对的,此时结果是指针的大小,并不是数组的大小。为了获取指针指向数组的大小,下列函数可以采用,但也只能获取固定结束符的数组长度。
#include <stdio.h>
int Sz_len(int *Data)
{
int b;
b=1;
while(Data++ != 0xFF)//定义数组结尾符标志0xFF
{
b++;
}
return b;
}
int main()
{
/ 我的第一个 C 程序 */
int arr[20]={0xA5,0x5A,0x00,0x14,0x82,0x31,0x35,0x32,0x35,0x30,0x30,0x30,0x32,0x33,0x32,0x00,0x00,0xBF,0xA6,0xFF};
printf("%d\r\n",Sz_len(arr));
return 0;
}