gpt4 book ai didi

包含不同值类型的 void 指针的 C 数组

转载 作者:行者123 更新时间:2023-12-02 07:57:26 24 4
gpt4 key购买 nike

我正在尝试创建一个包含 3 个指针的空数组:

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 中的指针之一,包括转换,但没有任何效果。

我应该如何处理它?<​​/p>

最佳答案

首先

char v3[3] = "geo";

没有足够的空间来追加 '\0'(C 字符串以 null 结尾)。

所以改成

char v3[4] = "geo";

为了从 void *ptrs[numOfArgs] 中获取值,类型转换 将起作用。并且不要忘记在需要时取消引用

这是一个例子:

printf("\n%c", *(char*)ptrs[0]);
printf("\n%d", *(int*)ptrs[1]);
printf("\n%s", (char**)ptrs[2]);

输出:

c
12
geo

关于包含不同值类型的 void 指针的 C 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61972810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com