【发布时间】:2016-09-24 08:14:27
【问题描述】:
如何打印十进制的指针?
使用-Wall 编译时,以下都不会产生所需的结果。我了解这些错误,并且确实想使用-Wall 进行编译。但是,我怎样才能打印十进制的指针呢?
#include <stdio.h>
#include <stdlib.h>
int main() {
int* ptr = malloc(sizeof(int));
printf("%p\n", ptr); // Hexadecimal notation
printf("%u\n", ptr); // -Wformat: %u expects unsigned int, has int *
printf("%u\n", (unsigned int) ptr); // -Wpointer-to-int-cast
return EXIT_SUCCESS;
}
(这是必需的,因为我在点图中使用指针作为节点标识符,而0x.. 不是有效标识符。)
【问题讨论】: