c++ - 错误消息 "invalid conversion from ‘void*’ 到 ‘unsigned int’“

标签 c++

我有这个 unsigned int 函数(它是任务的给定函数)

// read data from virtual memory
unsigned int read(const int index) {
    return speicher[index];
}

speicher[index] 中是一个数字,我必须将其解码为 4 个分量。第一个分量是 speicher[index] mod 16 的值,第二个分量是 (speicher[index])/(16*16)mod16 的值,我认为等等。

带有错误消息的其他示例。也许我无法理解该功能的作用:

对我来说,read(const int index) 函数应该返回一个无符号整数,我可以在程序中像“普通”其他无符号整数一样使用它。

unsigned int index = 0;
unsigned int test = 1;
do {
    unsigned int hexzahl = read(index);
    test = read(index);
    index = index + 1;
} while (index <= 255 && read(index) != 0);
// 37 actually i want, that the program breaks if the content of read(index) is 0

我无法理解错误信息:

main.cpp: In function ‘int main()’:

main.cpp:37: error: ISO C++ forbids comparison between pointer and integer

main.cpp:37: error: invalid conversion from ‘char* ()(const char, int)’ to ‘int’

main.cpp:37: error: initializing argument 1 of ‘unsigned int memory_read(int)’

最佳答案

你希望它做什么?

unsigned int hexzahl = (cout << dec << read(index));

这会打印值,然后尝试将 cout 流的状态分配给一个整数。这毫无意义,这就是它无法编译的原因。

如果你想将 hexzahl 设置为 read 的结果,那么就这样做:

unsigned int hexzahl = read(index);

如果您想打印该值,请单独打印:

cout << dec << hexzahl;

如果您想要的不是read 的结果,那么请更新问题以描述您正在尝试做的事情。

关于c++ - 错误消息 "invalid conversion from ‘void*’ 到 ‘unsigned int’“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26633910/

相关文章:

c++ - 为 vector<double> 类重载 *, +, -' 运算符

c++ - Ogre3d 场景节点数组

c++ - 将字符串从对话框传递到 MainWindow?

c++ - OpenCV `sortIdx` 返回意外结果

java - 寻找圆周率的展开

c++ - QList::count() 的缓存结果

c++ - 使 QTcpServer 只接受 IPv4 连接

导入 makefile 并运行提升单元测试的 C++ Linux IDE

java - 从 QBytearray 创建 QImage

c++ - std::invoke_result_t 编译时语法错误