c++返回无符号字符的数组
c++ return array of unsigned char
我有这个函数:
unsigned char* encrypt_decrypt( unsigned char* text,unsigned char* pass)
{
unsigned char *s=(unsigned char*)malloc(strlen((char*)text+1)*sizeof(unsigned char));
int length=strlen((char*)text);
printf("chestii:%d",sizeof(s));
for(int i=0;i<length;i++)
{
s[i]=text[i]^pass[i];
printf("text:%dn",text[i]);
printf("pass:%dn",pass[i]);
printf("cript:%dn",s[i]);
}
s[length]=' ';
return s;
}
文本和传递具有确切的长度,s指针的长度应与函数末尾的文本相同。例如,假设文本和通行证有26个字符。我不知道为什么,但在for指令的末尾,s指针的长度只有10。我分配了足够的内存,我想我在s中放入了26个元素。请帮我弄清楚为什么strlen(s)只有10?
strlen计数最多为0字节,因此如果一个字母在文本和pass中是公共的,它将提前终止字符串,因为text[i]^pass[i]==0如果text[i]==pass[i]。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符