读书人

unsigned char *有关问题

发布时间: 2013-02-02 12:27:16 作者: rapoo

unsigned char *问题
本帖最后由 Java_Devil 于 2013-01-22 11:07:23 编辑 在java端调用C的char*、好像char*要以0结尾吧、

 unsigned char * str = (unsigned char *)env->GetCharArrayElements(js,NULL);
像这种长度固定或不固定的str、如何给末尾添加上一个0结束标识。然后返回?
[解决办法]
不加0的话,那么strlen会一直找下去,直到遇到0结束,而这个0在随机的位置。
直接加0即可,比如ss[5]='\0'这样就可以正常结束了。

引用:
引用:如果是一个字符串的话,末尾应该已经有\0了,不然你没法用strlen的。C/C++ code?1234567unsigned char ss[5];ss[0]=33;ss[1]=22;ss[2]=11;ss[3]=12;ss[4]=22;return env->NewStringUTF((const char*)ss);不是字符……

[解决办法]
要不最后带0,要不就发个长度一起过去,NewstringUTF(const char* ss, int nlen);不然你不可能知道长度。:)

读书人网 >C++

热点推荐