c++ - C++,“错误:‘void*’不是指向对象的指针类型”
问题描述
我需要创建一个不同类型的指针数组。一些变量在开头定义,它们的向量被分配到数组中的不同空间。稍后,从另一个进程中,可以使用存储在数组中的指针更改这些变量的值。变量直接从主进程访问(没有指针)
在启动时的主进程中:
void *values[255];
uint8_t val1 = 12;
uint16_t val2 = 3478;
SetIDVariable(&val1, 0);
SetIDVariable(&val2, 2);
其他功能:
void SetIDVariable(uint8_t *variable, uint8_t id) {
values[id] = variable;
}
void SetIDVariable(uint16_t *variable, uint8_t id) {
values[id] = variable;
}
在其他过程中(x 是用于检查值是否更改的任意数字):
values[0] = (void*)(val1 + x);
values[2] = (void*)(val2 + x);
在主进程中:
Serial.print("Value 1: "); Serial.println(val1);
Serial.print("Value 2: "); Serial.println(val2);
值始终是 12 和 3478。有什么想法吗?
解决方案
推荐阅读
- java - Java 8:如何将纯 UTF-8 文本转换为 RTF(符号 > 127)?
- python - 为 JWT 用户令牌调用 DocuSign API 时出现错误请求。同意?
- java - JPA 问题@OneToMany - 如何从数据库中获取特定对象?
- java - 为什么我的 toString() 方法不起作用以及如何防止 SpringBootJPA 中的嵌套返回?
- firebase - 在 Flutter App 中找不到 Firebase 动态链接
- python - Pymongo MongoDb中删除子目录元素的问题
- c++ - 在接受指向抽象基类的指针的函数中使用派生类操作
- python - 无法在pycharm上安装熊猫
- django - Django 计算匹配分数(联合后注释查询的解决方法)
- framer-motion - 如何使成帧器运动与样式化的组件关键帧一起工作?