2016-11-17 68 views
0

这里我有一个名称为param和一个结构成员的结构void指针现在我想要print指针在十六进制指针中的值为500次。如何打印空值指针的值如果它的结构成员

struct param 
{ 
    void * tc_data; 
} 
param_t param_data; 

UINT32 temp_index2=0; 
UINT32 *pc = (UINT32*)param_data.tc_data; 
for (temp_index2 =0;temp_index2<500;temp_index2++) 
{ 
    printf (" DATA =%x\n", pc[temp_index2]); 
} 

我的方式,其print唯一地址,但我想print值。任何帮助解释都会很好。

+1

从您在问题中添加的代码。 tc_data指向垃圾数据。 –

+3

你是如何得出结论,你的程序只打印地址?请发布[mcve],程序输入,期望输出和实际输出。 –

+0

根据我的代码它指向垃圾数据可以说,param_data.tc_data有有效的数据,现在我需要打印值 – Ria

回答

0

可能您对十六进制和十进制数据感到困惑。您正在以十六进制打印数据,并假定它是地址。如果你想看到十进制:

printf (" DATA =%d\n", pc[temp_index2]);