首先定义个BYTE数组 BYTE A[100],但实际中不一定用完,我怎么能获得它的有效长度?
5个回答
展开全部
一个方法就是先把整个数组里的元素都置0.
然后因为你会向这里面写入数据嘛, 那就设置一个指针指向这个数组
通知指针的移动来读取当前指向的内存单元中的数据, 判断是否为0
因为要与0比较,因此最好首先让指针指向数组尾部, 然后使指针向前移
这样移动直到读取到第一个不为0的数据为址,通过循环我们很容易计算出指针移动了多少位, 总数是100,作个差就得到数据的长度了
为什么要让指针从后边移,因为你不保证数据中间会不会有0,比如一组数据
1230456789 如果是这样它只能计算机123的长了
但你从后边开始就不会出现这种问题。
随之带来的还有个BUG , 如果数据是 1234567890 怎么办?
那个0本来是我的数据,但按上面的方法移动指针,这个0会被忽略
那怎么办? 我先说下我学的是C语言,好像没见过BYTE这个类型,我个人理解它大概是存放二进制数据的,010101 这样的 ,如果真的只是存01 那好办了点,初始化数组的时候全置0和1以外的数 2 3 4 。、。。都可以。
如果不是像我上边说的这种数据,那就换成字母,反正我也想不出什么好办了 , 基本上找到一个数据中不可能出现的那个东西(数字,字母或是其它的东西)然后整个数组全置成这个东西。
然后因为你会向这里面写入数据嘛, 那就设置一个指针指向这个数组
通知指针的移动来读取当前指向的内存单元中的数据, 判断是否为0
因为要与0比较,因此最好首先让指针指向数组尾部, 然后使指针向前移
这样移动直到读取到第一个不为0的数据为址,通过循环我们很容易计算出指针移动了多少位, 总数是100,作个差就得到数据的长度了
为什么要让指针从后边移,因为你不保证数据中间会不会有0,比如一组数据
1230456789 如果是这样它只能计算机123的长了
但你从后边开始就不会出现这种问题。
随之带来的还有个BUG , 如果数据是 1234567890 怎么办?
那个0本来是我的数据,但按上面的方法移动指针,这个0会被忽略
那怎么办? 我先说下我学的是C语言,好像没见过BYTE这个类型,我个人理解它大概是存放二进制数据的,010101 这样的 ,如果真的只是存01 那好办了点,初始化数组的时候全置0和1以外的数 2 3 4 。、。。都可以。
如果不是像我上边说的这种数据,那就换成字母,反正我也想不出什么好办了 , 基本上找到一个数据中不可能出现的那个东西(数字,字母或是其它的东西)然后整个数组全置成这个东西。
展开全部
如果是全局量 BYTE A[100],编译器会自动初始化为全0
#include <windows.h>
#include <stdio.h>
BYTE a[100]; // 自动初始化为全0
void main()
{
int i;
for (i=0;i<100;i++) printf("%2x",a[i]);
}
如果是局部量 需要自己 初始化
你的合理的数值,应当有个 上下范围,或特征范围。
你可以先初始化 为 范围以外的值,以后,只要测定每个元素的数值,就知道有效长度。
当然,你也可以在使用中自己记录下使用长度。你也可以用动态数组,用malloc 开始分配一个长度,后面根据需要 用 realloc 增加长度。
#include <windows.h>
#include <stdio.h>
BYTE a[100]; // 自动初始化为全0
void main()
{
int i;
for (i=0;i<100;i++) printf("%2x",a[i]);
}
如果是局部量 需要自己 初始化
你的合理的数值,应当有个 上下范围,或特征范围。
你可以先初始化 为 范围以外的值,以后,只要测定每个元素的数值,就知道有效长度。
当然,你也可以在使用中自己记录下使用长度。你也可以用动态数组,用malloc 开始分配一个长度,后面根据需要 用 realloc 增加长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你定义的这个数组的类型是字符型的话,那么当你输入一个字符串的时候,要获取有效长度,就用strlen函数! 但如果你定义的是整形之类的话,你在输入的时候,应该会保留你最后输入的那个数的下标,十几长度也就是你最后一个输入的下标加1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每次读取byte[]数组长度个字节。也就是说,你byte数组长度多少。就读取多少到byte数组里
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
拷贝完写个结束符号不就知道了么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询