我该怎么做,因为我不知道是否可以读取 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/