当我尝试使用static_cast将double*转换为int*时,我收到以下错误:
invalid static_cast from type ‘double*’ to type ‘int*’
Run Code Online (Sandbox Code Playgroud)
这是代码:
#include <iostream>
int main()
{
double* p = new double(2);
int* r;
r=static_cast<int*>(p);
std::cout << *r << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
我理解在double和int之间转换会有问题,但为什么在double*和int*之间转换有问题?
有没有办法转换char[]成unsigned char*?
char buf[50] = "this is a test";
unsigned char* conbuf = // what should I add here
Run Code Online (Sandbox Code Playgroud) 我已经看到了很多关于这方面的问题,但到目前为止还没有人对我有用.
我已经尝试了2个最常见的答案,但我得到了同样的错误.
只是一个 unsigned char buf[10];
这个,
QByteArray databuf;
databuf = QByteArray::fromRawData(buf, 10);
Run Code Online (Sandbox Code Playgroud)
或这个,
QByteArray databuf;
databuf = QByteArray(buf, 10);
Run Code Online (Sandbox Code Playgroud)
给我同样的错误,
error: invalid conversion from 'unsigned char*' to 'const char*' [-fpermissive]
任何建议?
谢谢