永发信息网

VC中把字符数组当作参数传递给函数有问题,计算长度不对

答案:2  悬赏:10  手机版
解决时间 2021-02-27 04:05
  • 提问者网友:雾里闻花香
  • 2021-02-26 03:06
unsigned char buff[24];
.
.
.
BuildData(buff);//
bool BuildData( unsigned char* m_btBuff)
{
unsigned long m_dwBLen=sizeof(m_btBuff)/sizeof(m_btBuff[0]) ;
设断点看到m_btBuff为一个0,m_dwBLen为4,怎么回事?数组没有正确传过来吗?
最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-02-26 03:29
m_dwBLen = strlen(m_btBuff);
这个函数可以得到字符串长度,但你需要注意,如果char数组没有初始化(也就是没有结束标记'\0')是无法得到长度的,当数组抛出后,没有结束标记无法判断出24这个限制,只能通过结束标记。
全部回答
  • 1楼网友:第四晚心情
  • 2021-02-26 04:12
sizeof(m_btBuff)指的是指针的大小,为4个字节, sizeof(m_btBuff[0])指的是数组第一个元素的大小,char型数组,所以为1字节,mdwBLen = 4/1,所以为4; 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯