关于 C 指针中的 malloc



我坚持使用指针的基础知识 这是我的代码

char *orderUp;
orderdup = malloc(10 * sizeof(char));
printf("enter string");
scanf("n%s",orderdup);
printf("n%s",orderdup);// gives scanned strings
printf("n%s",*orderdup);// gives empty string

这里 这个程序运行良好 .我想知道为什么在 printf 语句中给出扫描的字符串。我的意思是它应该打印地址,但为什么它打印字符串和最后一个 printf 语句给出空字符串。

*orderdup属于char类型。您正在使用%s说明符打印char数据类型,而%s需要char *数据类型。它将调用未定义的行为。要打印地址,请使用%p

printf("%p", (void*)orderdup);

相关内容

  • 没有找到相关文章

最新更新