将 void 指针转换/转换为字符串

标签 c string void-pointers

我该怎么做,因为我不知道是否可以读取 void 指针,所以我想先将其转换为字符串。这是我在测试时的尝试:

void* test1;
char test2[] = "ha 21";
char test3[50];

test1 = test2;

test3 = test1;

printf("%s", test3);

return 0;

当我尝试使 test1 = test 2 时,也可能是错误的,但这只是为了显示 void 指针中应该包含的内容。我只是想看看如何将包含字符串的 void 指针转换为字符串。

最佳答案

由于 test3 是数组类型,因此无法对其进行赋值。 在 C 中,您可以将每个指针转换为 void * 并返回(它是隐式转换的)。

因此一个可能的解决方案是将 test3 声明为指针:

void *test1;
char test2[] = "ha 21";
char *test3;

test1 = test2;
test3 = test1;

printf("%s", test3);

或者如果你想复制内存(如评论中所述):

void *test1;
char test2[] = "ha 21";
char test3[50];

test1 = test2;
strcpy(test3, test1);

printf("%s", test3);

关于将 void 指针转换/转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53678215/

相关文章:

c - 卡尔曼滤波器实现 - 可能有什么问题

c - 指针用于存储地址,但是在像 char *ptr = "abc"这样的字符串中,那么如果打印 'ptr' 为什么会打印 abc 而不是地址

regex - 修剪字符串的结尾

c++ - 将变量发送到 void 指针或 C++ 中的 void 指针引用

c - 在 C 程序中将文件中的换行符读取为 char

c - fgetc 函数无法正常工作

c# - 从字符串中查找并提取数字

python - 当 csv 文件中存在字符串时增加变量

c - 当类型已知时,如何从 void 指针返回具有类型的指针

c - 函数调用,将其 void * 参数转换为任何其他类型