【发布时间】:2018-02-13 07:54:08
【问题描述】:
#include<stdio.h>
#include<stdlib.h>
struct Graph
{
int v;
};
int main()
{
struct Graph* graph = (struct Graph*) malloc(sizeof(struct Graph));
graph -> v = 1;
printf("%u", graph);
return 0;
}
但我收到有关行格式的警告:
printf("%u", graph);
警告是:
/home/praveen/Dropbox/algo/c_codes/r_2e/main.c|14|警告:格式'%u'需要'unsigned int'类型的参数,但参数2的类型为'struct Graph *' [-格式=]|
struct Graph * 类型应该使用什么格式说明符?
【问题讨论】:
-
文档说什么是正确的格式说明符?
-
struct Graph *类型没有格式说明符。在您指定要打印的内容之前,这个问题毫无意义。指针中存储的地址?还是别的什么? -
printf("%u", graph);-->printf("%p", (void *)graph); -
你期望什么输出?
标签: c printf format-specifiers