【发布时间】:2014-05-10 18:01:26
【问题描述】:
我一直在尝试从 C 中的 void 指针中的用户读取输入作为字符串。所以我写了如下内容:
void *ptr;
ptr = calloc(100,sizeof(char));
printf("Enter the string: ");
fgets(*((char *)ptr),100,stdin);
printf("You entered ");
puts(*((char *)ptr));
我知道我可能没有以正确的方式进行操作,所以任何人都可以帮助我展示在 void 指针中获取字符串输入的正确方法吗? 我想要一些东西
输入:- 输入字符串:欢迎用户
输出:- 您输入:欢迎用户
【问题讨论】:
-
你为什么不直接使用
char *ptr = calloc(100, sizeof(char));呢?如果这只是用于说明问题的示例代码,那很好,否则只需使用正确的指针类型并避免强制转换。 -
请注意
sizeof(char)始终是1。 -
@hyde 我正在尝试学习如何使用 void 指针类型,因为它让我可以灵活地输入:)
标签: c string pointers void dynamic-allocation