c++ - 无效转换 const unsigned char

标签 c++

我的程序中有这个函数:

unsigned char * stringXOR(const unsigned char * X, const unsigned char * Y, int len)
{
    unsigned char * result = new unsigned char [1024];
    for(int i = 0; i < len; i++)
    {
        result[i] = X[i] ^ Y[i];
    }
    result[len] = '\0';
    return result;
}

在 main() 中:

unsigned char ot1[1024] = "ksjdhsjd";
unsigned char ot2[1024] = "jjjkjhyh";

unsigned char * computeKey;
computeKey = stringXOR(ot1, ot2, strlen(ot1));

我得到一个错误 invalid conversion from ‘unsigned char*’ to ‘const char*’ [-fpermissive]|

这里有什么问题?我没有返回任何常量,所以在提示什么?

最佳答案

strlen 需要 const char *。您正在尝试将 const unsigned char * 传递给它。这就是错误消息的内容。

关于c++ - 无效转换 const unsigned char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36343413/

相关文章:

c++ - 如何获取 GDI 句柄列表

c++ - Visual Leak Detector 报告一个 int* 有 40 个字节泄漏

c++ - 为点创建文字 - C++

c++ - 我如何为 Windows 构建 jcal?

c++ - SetThreadpoolCallbackPriority 是否适用于 IO 回调

c++ - 为什么该算法没有在有向无环图中找到最长的路径?

c++ - glReadPixels 从后台缓冲区。浮点精度问题

c++ - 有条件地测试 vector 元素的相等性

c# - 为什么 C/C++ 有头文件,不像 C# 和 Java 等其他语言?

c++ - 有没有什么类或者结构可以让C++中的矩阵运算更加得心应手?