c - 包含不同值类型的 void 指针的 C 数组
问题描述
我试图有一个带有 3 个指针的 void 数组:
char v1='c';
int v2 =12;
int const numOfArgs=3;
char v3[3] = "geo";
void *arg1 = &v1;
void *arg2 = &v2;
void *arg3 = &v3;
void *ptrs[numOfArgs]= {arg1,arg2,arg3};
我尝试了几种方法来使用其中的一个指针ptrs
,包括强制转换,但没有任何效果。
我应该如何处理它?
解决方案
void *ptrs[numOfArgs]= {arg1,arg2,arg3};
当你编译你的代码时,你会得到错误:
可变大小的对象可能未初始化
如果要以这种方式声明数组,则必须通过以下方式制作常量numOfArgs
变量#define
:
#define numOfArgs 3
或者您可以将指针数组的每个元素初始化为:
void *ptrs[numOfArgs];
ptrs[0] = &v1;
ptrs[1] = &v2;
ptrs[2] = &v3;
推荐阅读
- javascript - Highcharts:在初始渲染后禁用/启用 enableMouseTracking
- python - 如何在 Python 中的方法中预设对象变量
- javascript - Spring Boot 混合会话数据
- azure - 启用客户端证书时首次请求超时
- javascript - react-id-swiper 嵌套交互组件
- google-app-engine - 如何在 IntelliJ 中将 Google App Engine 部署从 Standard 更改为 Flex
- python - 将列名解析为 DateTime
- c# - 可变长度冒号分隔的字符串正则表达式验证
- mysql - 如何在sql中的单个查询中获取具有多个值的名称
- openlayers - Openlayers - 移动地图