如何以十進制表示法打印指針?Printf十進制表示法指針
與-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..
是不是有效的標識符。)