c - 空指针类型转换

标签 c pointers

我想打印空指针的地址

u32 j;
for (j = 0; j < sizeof(struct queue_header); j += 4) 
{
    printf("0x%x ",(u32 *)((u32 *)q->q_hdr + j)); //q_hdr  is a void pointer        
}

但是这种类型转换给出了错误:

warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]

你能告诉我如何打印地址吗?

最佳答案

这就是 %p 的用途:打印指针。

printf("%p ", (void *)((u32 *)q->q_hdr + j));

应该做你想做的。

关于c - 空指针类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27502231/

相关文章:

c - 字符串旋转

c - Unix 系统中的文件 read() 函数

c - 如何读取整数并将其写入文件

c - 释放内存函数 C

c++ - 数组类型的元素类型不完整,无法进行模式匹配

c - 使用 **ptr 将多维数组传递给函数

c - 指针和数组—艰苦学习C

c++ - Cout 不打印号码

C++ 不需要返回值

c - C中的*d++和(*d)++有什么区别?