2015-05-09 47 views
0

this question上下文的陣列,我想出了下面的代碼聲明和初始化用指針的數組,以陣列

typedef char Tuple[2]; 

Tuple test1[2] = {{1,2},{1,2}}; 
Tuple test2[3] = {{1,2},{1,2},{1,2}}; 
Tuple test3[4] = {{1,2},{1,2},{1,2},{1,5}}; 

Tuple* all[3] = {test1, test2, test3}; 

存儲指向數組的指針(2元組)的陣列在初始化列表。但是,我沒有使用typedef編寫等效代碼。這個樣子的正確語法是什麼?

回答

1
char test1[2][2] = {{1, 2}, {1, 2}}; 
char test2[3][2] = {{1, 2}, {1, 2}, {1, 2}}; 
char test3[4][2] = {{1, 2}, {1, 2}, {1, 2}, {1, 5}}; 

char (*all[3])[2] = {test1, test2, test3}; 

保留typedef。

+0

謝謝。它也可以在不指定數組大小的情況下工作('all []')。這似乎是違反直覺的,[2]'最後會結束。這背後的規則是什麼? – fuenfundachtzig