如果你的代码是纯 C 的,那么你只能另外提供一个 length 的参数来表明这个unsigned char*数据的长度。 如果你的代码是 C++ 的,你可以直接把数据存储在 std::string 中,string 中是可以有 0 的。 std::string str;unsigned char data[5] = {1,2,3,0,4 };str.assign((char*)data,5);cout << str.s...
size_t是一个用于表示大小或计数的无符号类型,典型情况下用于表示对象的大小或数组的长度。它常见于很多...
char (*str)[20]; /*str是一个数组指针,即指向数组的指针.*/ char *str[20]; /*str是一个指针数组,其元素为指针型数据.*/ 给定结构struct A { char t:4; 4位 char k:4; 4位 unsigned short i:8; 8位 unsigned long m; // 偏移2字节保证4字节对齐 }; // 共8字节 上面变量名后的“:”...
int nLen = strlen(s2);int i = 0;char s3[3] = {0};while(i < nLen){ strncpy(s3, s2+i, 2);i+= 2;int n1 = 1;sscanf(s3, "%02X", &n1);unsigned char c1 = n1; // 此处得到unsigned char类型, 如果需要数组自己处理 printf("0x%02x,", c1);} ...
不是int存不下 而是你的栈空间不足 20万 就是200000*4=800000 需要800K左右的内存。 明显栈溢出了...
Limo 2k11120192 发布于 2022-12-01 江苏 除非很肯定 unsigned char[] 里边存储的就是普通字符串,否则 strlen 也没法保证一定能获取到正确的长度。 一般用 unsigned char 的话,要么带一个 int len 用来表示这个数组的长度,要么直接放在类似 std::vector 的容器里。 有用1 回复 撰写...