我坚持使用指针的基础知识 这是我的代码
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);