[英]C++, “error: 'void*' is not a pointer-to-object type”
我需要创建一个不同类型的指针数组。 一些变量在开头定义,它们的向量被分配到数组中的不同空间。 稍后,在另一个进程中,可以使用存储在数组中的指针来更改这些变量的值。 变量直接从主进程访问(不带指针)
在 de main 进程中:
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。有什么想法吗?
您不会使用此代码更改 val1 和 val2。 您只会影响值中的新指针分配
values[0] = (void*)(val1 + x);
values[2] = (void*)(val2 + x);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.