2013-03-19 164 views
0

你好我都是新手編程,我有一個範例,我需要打印一個結構類型的指針,它在每次迭代中動態獲取值,並打印一個defrenced結構成員每次迭代。打印一個結構指針和一個推定的struct成員

struct my_struct 
{ 
int x; 
int y; 
} 
void function(){ 

my_struct* a=value.get() // some values will be assigned dynamically to this pointer from other part of function. 

my_struct* data = new thread_data; 
data->x=1 //which will get updated according the iterations and conditions 
data->y=2 //which will get updated according the iterations and conditions 

} 

現在我需要在調用函數中打印a,x,y的值,如何打印這些值。 一些像

printf("a=%lx x=%i y=%i\n", a,x,y); 

有人可以請給我一些想法或如何進行?非常感謝

+2

使用'%p'打印指針。檢查'man 3 printf'。 – 2013-03-19 13:39:42

回答

2

在C++中,你可以使用std::cout

std::cout << "a=" << a << " x=" << a->x << " y=" << a->y << "\n"; 

否則,你的printf版本可以修復這樣的:

printf("a=%p x=%i y=%i\n", a, a->x, a->y); 
+0

在OP的代碼中看到'new'和'.get()',可能不需要提及'printf()'。 – Angew 2013-03-19 13:44:31

+0

@Angew''printf'直接來自OP的代碼。我試圖修復他們的版本。 – juanchopanza 2013-03-19 13:45:51

+0

'std :: cout <<「a =」<< a <<「x =」<< a-> x <<「y =」<< a-> y <<「\ n」;'只給a就會給出存儲在' my_struct * a'?或存儲在'my_struct * a'中的地址? – Rd7 2013-03-19 13:48:16

相關問題