我试图了解一些C++功能并编写了一些测试.但是,当我尝试编译时,我收到以下错误(如下).为什么会发生这种情况,以及正确的方法是什么?我正在尝试将32位指针转换为8位指针并在转换后打印出内容.
cast3.cpp:22:错误:不能用dynamic_cast'bigptr'(类型'uint32_t*')来输入'uint8_t*'(目标不是指针或类的引用)
码:
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void castme(uint8_t small[], int size);
int main(void)
{
uint8_t *small;
uint32_t big = 0x01234567;
uint32_t *bigptr = &big;
small = dynamic_cast<uint8_t *>(bigptr); // Line 22
castme(small, sizeof(big));
return 0;
}
void castme(uint8_t small[], int size)
{
for (int i = 0; i < size; i++)
{
printf("0x%x\n", small[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2839 次 |
| 最近记录: |