gpt4 book ai didi

c++ - 如何打印 const void* 的值

转载 作者:行者123 更新时间:2023-11-30 00:54:47 25 4
gpt4 key购买 nike

#include <iostream>
using namespace std;

void fn(const void *l) {
// How to print the value of l. The below line is giving error
cout << "***" << *l;
}

int main() {
cout << "Hello World!";
int d = 5;

fn((char *) &d);
return 0;
}

错误:

在函数“void fn(const void*)”中:第 8 行:错误:'const void*' 不是指向对象的指针类型编译因 -Wfatal-errors 而终止。

试过类型转换,如下所示。它没有帮助。请提供建议。

#include <iostream>
using namespace std;

void fn(const void *l) {
// How to print the value of l. The below line is giving error
int *pInt = static_cast<char*>(l);
cout << *pInt;
}

int main() {
cout << "Hello World!";
int d = 5;

fn((char *) &d);
return 0;
}

在函数“void fn(const void*)”中:第 9 行:错误:从类型“const void*”到类型“char*”的 static_cast 抛弃了常量编译因 -Wfatal-errors 而终止

最佳答案

您想显示指针 本身的值,还是它指向的值?第一种情况,简单

 cout << p;

就足够了。如果你想实现第二件事 - 这是不可能的 - 指针指向 void,并且它不能被取消引用,因为编译器不知道它背后“隐藏”的值的类型。

关于c++ - 如何打印 const void* 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com