读书人

指针有关问题求解!

发布时间: 2012-03-31 13:13:26 作者: rapoo

指针问题求解!!!!
void CoderArray::Encode0(const char* format,char* buf, int* len)
{
.........

case CODER_TYPE_INT
{
char* p = buf + bufPos;
*p = pItem->num_32;
//*p=222;
bufPos += 4;
}

case CODER_TYPE_SHORT
{
char* p = buf + bufPos;
*p = pItem->num_16;
//*p=111;
bufPos += 2;

}


这样的指针操作,每次都把\0写进去了,导致用strlen获取长度时,只获取到第一个的长度,(比如写了5个数据,但写入第一个时就有了\0,获取的长度不对了) ,请问/0为什么会自动加入的?????如何解决这个问题??求解了!!急!!


[解决办法]
你为什么用strlen取长度啊?你明明涉及的是int、short、。。。类型的,与char没有直接关系啊?
长度测量方法只有 strlen()?
你不能用buf和bufPos求吗?
[解决办法]
strlen 是对字符串求长度,不是字符串用别的,比如 sizeof(array)/sizeof(array[0]),如果只有指针,最好同时传入长度

读书人网 >C语言

热点推荐